CHOICE |
Choix |
|---|---|
| DOSBox | |
Syntaxe
| CHOICE "Texte-a-demander" |
Paramètre
| Paramètre | Description |
|---|---|
| Texte-a-demander | Ce paramètre permet d'indiquer le message présenté à l'utilisateur avant la liste des choix disponibles. Le texte peut être placé entre guillemets lorsqu'il contient des espaces. |
Description
Cette commande permet d'attendre que l'utilisateur appuie sur une touche et de définir la variable ERRORLEVEL en fonction du choix effectué. Elle est principalement destinée à être utilisée dans les fichiers de commandes (batch files) afin de permettre à un script de prendre une décision selon la réponse de l'utilisateur.
Remarques
- Par défaut, la commande affiche le texte indiqué suivi de [Y,N]?, proposant ainsi à l'utilisateur de répondre par Y (Yes, oui) ou N (No, non). L'exécution du fichier de commandes demeure suspendue jusqu'à ce que l'utilisateur appuie sur l'une des touches acceptées.
- La touche sélectionnée détermine la valeur de ERRORLEVEL. Le premier choix correspond à la valeur 1, tandis que le deuxième correspond à la valeur 2. Avec les choix par défaut Y et N, la touche Y produit donc un ERRORLEVEL égal à 1, tandis que la touche N produit un ERRORLEVEL égal à 2.
- Dans un fichier de commandes DOS, cette valeur peut ensuite être vérifiée avec la commande IF ERRORLEVEL afin d'exécuter différentes instructions selon la réponse obtenue. Comme IF ERRORLEVEL n vérifie si la valeur est supérieure ou égale à n, il est généralement nécessaire de tester les valeurs dans l'ordre décroissant.
Exemple
L'exemple suivant demande à l'utilisateur s'il souhaite continuer :
| CHOICE "Voulez-vous continuer" |
La commande affiche alors une invite semblable à :
| Voulez-vous continuer [Y,N]? |
Dans un fichier de commandes, le résultat peut être traité de la façon suivante :
|
CHOICE "Voulez-vous continuer" IF ERRORLEVEL 2 GOTO NON IF ERRORLEVEL 1 GOTO OUI :OUI ECHO Vous avez choisi Oui. GOTO FIN :NON ECHO Vous avez choisi Non. :FIN |
Dans cet exemple, Y définit ERRORLEVEL à 1 et N le définit à 2. Le test de la valeur 2 doit être effectué avant celui de la valeur 1, en raison du fonctionnement de IF ERRORLEVEL sous DOS.
Dernière mise à jour : Dimanche, le 25 Avril 2021