1001 Astuces Nam@ni
http://www.namani.net

Choice

 

 

 

Entrées clavier dans les fichiers de commandes.

Syntaxe:

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. 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

 

 

 

Notes:

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.

 

 

 

Codes ERRORLEVEL retournés:

0

CHOICE a été terminé par Ctrl-C avant un choix.

1

La touche correspondant au premier choix est tapée.

n

La touche correspondant au enième choix est tapée.

255

Erreur.

 

 

 

Exemple 1:


:DEBUT
ECHO Souhaitez-vous effacer le fichier ? A permet d'obtenir une aide.
CHOICE /C:ona Effacer
IF ERRORLEVEL 3 GOTO AIDE
IF ERRORLEVEL 2 GOTO NON
DEL Nom de fichier
REM Suite de l 'exécution du programme...
:AIDE
CLS
ECHO O pour OUI efface définitivement le fichier. N n'efface pas
ECHO le fichier.
ECHO.
GOTO DEBUT
:NON
REM Le programme se poursuit sans effacer le fichier...
:FIN

Dans l'exemple précédent, les touches prédéfinies O, N, A servent à confirmer la suppression du fichier. Selon la touche tapée, le batch saute vers la section concernée et le programme se poursuit en conséquence.

Avec l'option /T, le programmeur aide l'utilisateur à effectuer un choix :

CHOICE /C:ona /T:a,10 Effacer ?

Active la touche A pour Aide après une attente de 10 secondes.

 

 

 

Exemple 2:

Pour lancer SCANDISK sur le lecteur C au démarrage du PC, vous pouvez ajouter à "autoexec.bat" :


CHOICE Lancement de Scandisk /ty,5
IF errorlevel 2 GOTO Fin
Scandisk c:
:Fin

Si vous pressez N dans le 5 secondes, SCANDISK ne sera pas lancé et CHOICE retourne une valeur ERRORLEVEL de 2. Si vous ne faites rien, SCANDISK sera lancé sur le lecteur C.

 

Contrairement aux autres commandes batch, CHOICE est une commande externe. Le fichier programme doit donc se trouver dans un répertoire intégré au chemin. Ici aussi, il faut faire attention au fait que le test ERRORLEVEL s'effectue par ordre décroissant.