Fichier batch petite question

Résolu
gege1024 Messages postés 138 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 27 janvier 2009 - 4 oct. 2006 à 13:40
gege1024 Messages postés 138 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 27 janvier 2009 - 4 oct. 2006 à 18:28
est-il possible, dans un batch, de demander a l'utilisateur s'il veut continuer l'execution ou pas?
en gros je veux une confirmation avant d'executer le batch.

gege

5 réponses

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 18
4 oct. 2006 à 15:43
@ECHO off
cls
:start
ECHO.
ECHO 1. Print Hello
ECHO 2. Print Bye
ECHO 3. Print Test
set choice=
set /p choice=Type the number to print text.
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto hello
if '%choice%'=='2' goto bye
if '%choice%'=='3' goto test
ECHO "%choice%" is not valid please try again
ECHO.
goto start
:hello
ECHO HELLO
goto end
:bye
ECHO BYE
goto end
:test
ECHO TEST
goto end
:end
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 23
4 oct. 2006 à 15:43
Le ms-dos batch n'est pas fait pour l'interractivité avec l'utilisateur, cepandant on peut contourner le problème de 2 manières, une très lourde et l'autre plus simple.
La plus simple est de créer un petit exe en C qu'on mettra dans le path et qui posera la question, on récuperera la chaine "oui", "non" ect..., et on lancera le batch depuis l'exe C.

on peut faire la meme chose en dos avec la redirection de la reponse dans un fichier temp texte, si on trouve la chaine "oui" avec find ou findstr (voir param) on efface le fichier, on fait les goto,  ect... ect... mais c'est pas naturel comme méthode !
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 23
4 oct. 2006 à 15:44
Dernière chose, tu lances le fichier batch depuis un prog en C avec _execlp()
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 23
4 oct. 2006 à 16:59
Effectivement 638418 A=638418 AlexN , je ne connaissait pas SET /P, qui est tout à fait utile !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gege1024 Messages postés 138 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 27 janvier 2009
4 oct. 2006 à 18:28
j'ai trouvé juste apres mais merci qd meme.


effctivement j'avais fais avec set /p


mais une chaose tres importante : ne pas mettre de "blanc" avant "="  !!!!!!!!!!!!! (pas comme moi, lolll)

gege
0