Objectif :Sélectionnez les commandes à exécuter dans un fichier batch en fonction d'une valeur

 

Format:INTERRUPTEUR expression

Adhésion value1 [.OU. value2 [.OU. value3 ...]]

[commandes]

Adhésion value4

[commandes]

CASEALL

[commandes]

[DÉFAUT

commandes]

INTERRUPTEUR DE FIN

 

expressionUne variable d'environnement, une variable interne, une fonction variable, une chaîne de texte ou une combinaison de ces éléments, utilisée pour sélectionner un groupe de commandes.
valeur1, valeur2Une valeur à tester ou plusieurs valeurs liées à .OU.
commandesUne ou plusieurs commandes à exécuter si l'expression correspond à la valeur. Si vous utilisez plusieurs commandes, elles doivent être séparées par des séparateurs de commandes ou placées sur des lignes distinctes d'un fichier batch.

 

Voir aussi: IF et IFF.

 

Usage:

 

SWITCH ne peut être utilisé que dans des fichiers batch. Il vous permet de sélectionner une commande ou un groupe de commandes à exécuter en fonction des valeurs possibles d'une variable ou d'une combinaison de variables et de texte.

 

La commande SWITCH est toujours suivie d'un expression créé à partir de variables d'environnement, de variables internes, de fonctions de variables et de chaînes de texte, puis par une séquence d'instructions CASE correspondant aux possibles valeurs of expression, un DEFAULT facultatif déclaration, et terminé par un Instruction ENDSWITCH. Chaque instruction CASE et l'instruction DEFAULT peuvent être suivies d'un ou plusieurs commandes.

 

TCC évalue expressionet compare séquentiellement avec la liste de valeurs dans les instructions CASE, en commençant par la première. Les règles de comparaison sont les mêmes que celles utilisées pour EQ opérateur relationnel; voir Comparaisons numériques et de chaînes pour plus de détails. Si une correspondance est trouvée, le commandes qui suivent l'instruction CASE correspondante sont exécutées et le fichier batch continue avec les commandes qui suivent ENDSWITCH. S'il existe des correspondances dans les instructions CASE suivantes, elles sont ignorées. Le Plus-value dans une instruction CASE peut être des littéraux, ou des variables ou des fonctions (qui seront développées avant la comparaison avec l'expression SWITCH).

 

Les instructions CASE peuvent inclure des caractères génériques et des expressions régulières.

 

L'instruction CASEALL facultative doit suivre toutes les instructions CASE mais précéder DEFAULT. Si un bloc CASE précédent a été exécuté, CASEALL sera également exécuté ; sinon, il est ignoré.

 

Si lors de la recherche d'une correspondance, l'instruction DEFAULT est rencontrée, le commandes, le cas échéant, ceux qui le suivent sont exécutés et le fichier batch continue avec les commandes qui suivent ENDSWITCH. Toutes les instructions CASE après l'instruction DEFAULT sont ignorées.

 

Les commandes SWITCH peuvent être imbriquées.

 

Vous pouvez quitter tous les traitements SWITCH / ENDSWITCH en utilisant GOTO à une ligne après le dernier ENDSWITCH.

 

Restrictions

 

Chaque instruction SWITCH, CASE, DEFAULT et ENDSWITCH doit figurer sur une ligne distincte et ne peut pas être suivie d'un séparateur de commande. (C'est la raison pour laquelle SWITCH ne peut pas être utilisé dans les alias.) Il n'y a aucune restriction sur le regroupement et l'utilisation des séparateurs de commandes dans le commandes pour un CASE ou un DEFAULT.

 

Vous pouvez lier une liste de valeurs dans une seule instruction CASE avec .OR., mais pas avec .AND. ou .XOR..

 

Exemples :

 

Le fragment de fichier batch ci-dessous affiche un message si l'utilisateur appuie sur A, un autre si l'utilisateur appuie sur B or C, et une troisième si l'utilisateur appuie sur une autre touche :

 

inkey Entrez une frappe : %%key

changer %touche

cas A

  echo C'est un A

cas B .ou. C

  echo C'est soit B, soit C

défaut

  echo Ce n'est ni A, ni B, ni C

interrupteur de fin de course

 

Dans l'exemple ci-dessus, la valeur d'une seule variable d'environnement a été utilisée pour expression. Toutefois, vous pouvez utiliser d’autres types d’expressions si nécessaire. La première instruction SWITCH ci-dessous sélectionne une commande à exécuter en fonction de la longueur d'une variable, et la seconde base l'action sur une chaîne de texte entre guillemets stockée dans une variable d'environnement :

 

changer %@len[%var1]

cas 0

  echo Var1 manquant

cas 1

  echo Caractère unique

interrupteur de fin de course

 

 

changer "%string1"

cas "Ceci est un test"

  echo Chaîne de test

cas "Le renard brun rapide"

  echo C'est le renard

interrupteur de fin de course