Voila je bosse sur un programme dans lequel l’utilisateur aura le choix entre plusieurs chiffres du style 1 2 3 …
je voudrais savoir quel serait la commande pour que dans mon batch l’utilisateur
qui aura déjà le choix entre 1 2 3 aura différentes action selon les nombres
echo Votre choix est:
set /p choix=
if %choix%==1 goto stockage
if %choix%==2 goto normal
if %choix%==3 goto compress
:stockage
echo stockage marche !
goto fin
:normal
echo normal marche !
goto fin
:compress
echo compress marche !
goto fin
:fin
echo tout est ok !
pause > nul
Exact, tu peux donc soit mettre des guillements dans les if :
set /p choix=
if "%choix%"=="1" goto stockage
if "%choix%"=="2" goto normal
if "%choix%"=="3" goto compress
goto fin
:stockage
echo stockage marche !
goto fin
:normal
echo normal marche !
goto fin
:compress
echo compress marche !
goto fin
:fin
echo tout est ok !
pause > nul
soit tester avant le choix si la variable n’existe pas (j’ai laissé le goto fin après les if ici aussi car si tu tappes un truc mais différent de 1, 2 ou 3 ça va faire stockage à tout les coups) :
set /p choix=
if "%choix%"=="" goto fin
if %choix%==1 goto stockage
if %choix%==2 goto normal
if %choix%==3 goto compress
goto fin
:stockage
echo stockage marche !
goto fin
:normal
echo normal marche !
goto fin
:compress
echo compress marche !
goto fin
:fin
echo tout est ok !
pause > nul
Par contre après une exécution où tu as tappé un chiffre si tu reste dans la même fenêtre dos, en ne tappant rien lors du set /p choix= la variable choix va contenir la valeur précédente, tu peux donc mettre un :
C’est vrai, mais je ne suis pas un pro en batch :D, mais bon vu qu’il a un “pause” à la fin de son batch je pense que c’est pour une exécution par double clic sur le .bat, et si c’est le cas il n’aura pas de problème.
:kimouss:
Ouep c’est ce que je voulais dire par “pas de problème” :D, que les variables ne restent pas dans l’environnement après la fin de l’exécution.
:kimouss:
En fait, c’est une bonne habitude d’entourer son script par setlocal/endlocal (sauf cas particulier) afin de garantir son fonctionnement dans le maximum des cas possibles.