Idee-Astuce.com

Commande Choice en batch MS-Dos

posté par Bill le Samedi 14 juillet 15:23

La commande CHOICE de Ms-Dos est bien utile car elle permet de réaliser les menus et de rendre ainsi MS-DOS un peu plus convivial. Elle permet également de récupérer les lectures du clavier dans une variable. Cette variable pourra ensuite être utilisée pour divers traitements.

Syntaxe de la commande CHOICE
CHOICE {/C:Touches} {/N} {/S} {/T:c,nn} {Texte}

/C:Touches : Touches autorisées en guise d'entrée. A l'écran, ces touches sont indiquées entre crochets. En l'absence d'indication de votre part, la commande utilise ON (ou YN si vous avez une version anglaise de MS-DOS) . Le double-point n'est pas écrit d'avance.

/N : Interdit l'affichage du message d'invite mais les touches spécifiées restent valides.

/S : En principe, la différence majuscules/minuscules n'est pas prise en compte. Cette option fait cette différence.

/T:c,nn : CHOICE laisse écouler le temps spécifié en nn secondes avant d'utiliser la touche c comme valeur par défaut. Il doit s'agir d'une touche définie en /C. Le double-point n'est pas écrit d'avance.

Texte : Texte qui doit être affiché avec le message d'invite.

Explications
CHOICE suspend le batch et attend une entrée clavier sachant que le programmeur peut définir les différentes touches. L'appui d'une autre touche est signalé par un signal sonore.
Dans le batch, la touche appuyée est évaluée avec un test ERRORLEVEL, ce qui rend la manipulation très souple.
L'errorlevel est déterminé selon les règles du test effectué avec IF. L'errorlevel correspond à l'emplacement de la touche dans la prédéfinition. Presser la première touche renvoie un ERRORLEVEL égal à 1. Pour la Nième touche pressée, CHOICE renvoie un ERRORLEVEL égal à N. Si ERRORLEVEL est égal à 0 alors cela signifie que la commande CHOICE a été terminée par un CTRL-C.

Exemple 1
L'exemple suivant permet de faire le choix entre 3 valeurs : 1, 2 ou 3.

echo 1) premier choix
echo 2) deuxieme choix
echo 3) troisieme choix
CHOICE /C:123 Quel est ton choix ?
IF ERRORLEVEL==3 echo troisieme choix
IF ERRORLEVEL==2 echo deuxieme choix
IF ERRORLEVEL==1 echo premierchoix


Exemple 2
L'exemple suivant permet de faire le choix entre 3 valeurs : A, B ou C.

echo A) premier choix
echo B) deuxieme choix
echo C) troisieme choix
CHOICE /C:ABC Quel est ton choix ?
IF ERRORLEVEL==3 echo C
IF ERRORLEVEL==2 echo B
IF ERRORLEVEL==1 echo A


Exemple 3
Sur certains systèmes, la commande CHOICE n'existe pas, il est alors possible de ruser en utilisant la commande SET et le paramètre /P qui permet d'interroger sur la valeur d'une variable.
L'exemple suivante permet de déterminer la valeur de la variable toto saisie:

set /p toto=Quel est votre choix?
if %toto%==1 (
echo premier choix
) else (
if %toto%==2 (
echo deuxieme choix
) else (
if %toto%==3 (
echo troisieme choix
) else (
echo autre
)
)
)


Voir toutes astuces windows, autres astuces informatique.

... Et encore !

Posté le Vendredi 10 août 11:57
Posté le Lundi 02 juillet 20:55

Voir toutes les astuces informatique.

Proposer une astuce informatique.

Mettre un site en vente