<< Retour au sommaire

 

 

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