MS-DOS La commande CHOICE
La
commande CHOICE doit être impérativement intégrée dans un fichier Batch.
Elle
ouvre une fenêtre à l’utilisateur, lui permettant ainsi, de réaliser un choix parmi
plusieurs.
Il
doit effectuer le choix à partir d’une touche du clavier.
Dans
le fichier Batch, en fonction du choix qui sera réalisé, nous orienterons
l’exécution des commandes sur une étiquette ou sur une autre.
La
syntaxe :
CHOICE
/C:abc « Faites un choix »
IF
ERRORLEVEL==3 GOTO Etiquette3
IF ERRORLEVEL==2 GOTO
Etiquette2
IF ERRORLEVEL==1 GOTO
Etiquette1
La
première ligne, “CHOICE” permet de déclarer dans un ordre précis les
différentes réponses possibles.
Dans
notre syntaxe, nous avons utilisé « a », « b » et
« c ».
Ultérieurement,
dans le traitement de la réponse, c’est-à-dire avec ERRORLEVEL, les choix que
nous avons proposés dans le paramètre « /C », prendrons
consécutivement les valeurs 1, 2, et 3…
Dans
la syntaxe, comme nous avons placé « a » en premier, « a »
aura la valeur 1, « b » la valeur 2 et « c » la valeur 3.
En fait, un caractère de réponse prend la valeur de la position qu’il occupe
dans la ligne de réponses proposées.
Ensuite,
viennent les commandes ERRORLEVEL.
If
ERRORLEVEL, signifie égal ou plus grand que.
Par conséquent, nous sommes obligés de
comparer le résultat dans le sens inverse des propositions.
Sinon,
regardez bien notre exemple, puisque ERRORLEVEL signifie « égal ou plus
grand que », le résultat sera toujours validé lors d’une comparaison au
premier choix.
Dans
notre syntaxe, la réponse « a » prend la valeur 1, donc, le résultat
est toujours égal ou plus grand que « a ».
C’est
pourquoi nous devons toujours réaliser les comparaisons avec les choix par
ordre inverse, de la plus grande valeur à la plus petite.
Voici
un exemple ou l’utilisateur devra choisir entre la suppression de 3 fichiers.
Echo
off
Echo
Bonjour
Echo
Veuillez choisir l’un des fichiers à supprimer
Echo
Réponse A pour supprimer aide.txt
Echo
Réponse B pour supprimer Index.txt
Echo
Réponse C pour supprimer Visite.txt
CHOICE
/C:ABC « Faites votre choix »
IF
ERRORLEVEL==3 GOTO Suppression3
IF ERRORLEVEL==2 GOTO
Suppression2
IF ERRORLEVEL==1 GOTO
Suppression1
:Suppression1
REM
l’utilisateur a choisi la réponse A
Del
Aide.txt
GOTO
Fin
:Suppression2
REM
l’utilisateur a choisi la réponse B
Del Index.txt
GOTO Fin
:Suppression3
REM
l’utilisateur a choisi la réponse 3
Del
Visite.txt
GOTO
Fin
:Fin
REM C’est fini !
Philippe BOULANGER