Script de lot - Instruction If / else

La prochaine déclaration de prise de décision est la déclaration If / else. Voici la forme générale de cette déclaration.

If (condition) (do_something) ELSE (do_something_else)

Le fonctionnement général de cette instruction est que tout d'abord une condition est évaluée dans l'instruction «si». Si la condition est vraie, il exécute les instructions par la suite et s'arrête avant la condition else et sort de la boucle. Si la condition est fausse, il exécute alors les instructions du bloc d'instructions else, puis quitte la boucle. Le diagramme suivant montre le déroulement de l'instruction «if».

Vérification des variables

Tout comme l'instruction 'if' dans Batch Script, la commande if-else peut également être utilisée pour vérifier les variables qui sont définies dans Batch Script lui-même. L'évaluation de l'instruction «if» peut être effectuée à la fois pour les chaînes et les nombres.

Vérification des variables entières

L'exemple suivant montre comment l'instruction «if» peut être utilisée pour les nombres.

Example

@echo off 
SET /A a = 5 
SET /A b = 10
SET /A c = %a% + %b% 
if %c%==15 (echo "The value of variable c is 15") else (echo "Unknown value") 
if %c%==10 (echo "The value of variable c is 10") else (echo "Unknown value")

La chose clé à noter à propos du programme ci-dessus est -

  • Chaque code «if else» est placé entre crochets (). Si les crochets ne sont pas placés pour séparer le code du code «if et else», alors les instructions ne seront pas valides correctement si les instructions else.

  • Dans la première instruction «if else», la condition if serait évaluée à true.

  • Dans la deuxième instruction «if else», la condition else sera exécutée puisque les critères seraient évalués à faux.

Output

La commande ci-dessus produit la sortie suivante.

"The value of variable c is 15" 
"Unknown value"

Vérification des variables de chaîne

Le même exemple peut être répété pour les chaînes. L'exemple suivant montre comment l'instruction 'if else' peut être utilisée pour des chaînes.

Example

@echo off 
SET str1 = String1 
SET str2 = String2 

if %str1%==String1 (echo "The value of variable String1") else (echo "Unknown value") 
if %str2%==String3 (echo "The value of variable c is String3") else (echo "Unknown value")

La chose clé à noter à propos du programme ci-dessus est -

  • La première instruction «if» vérifie si la valeur de la variable str1 contient la chaîne «String1». Si tel est le cas, il renvoie une chaîne à l'invite de commande.

  • Puisque la condition de la deuxième instruction «if» est évaluée à false, la partie écho de l'instruction ne sera pas exécutée.

Output

La commande ci-dessus produit la sortie suivante.

"The value of variable String1" 
"Unknown value"

Vérification des arguments de ligne de commande

L'instruction 'if else' peut également être utilisée pour vérifier les arguments de ligne de commande. L'exemple suivant montre comment l'instruction 'if' peut être utilisée pour vérifier les valeurs des arguments de ligne de commande.

Example

@echo off 
echo %1 
echo %2 
echo %3 
if %1%==1 (echo "The value is 1") else (echo "Unknown value") 
if %2%==2 (echo "The value is 2") else (echo "Unknown value") 
if %3%==3 (echo "The value is 3") else (echo "Unknown value")

Output

Si le code ci-dessus est enregistré dans un fichier appelé test.bat et que le programme est exécuté comme

test.bat 1 2 4

Voici la sortie du programme ci-dessus.

1 
2 
4 
"The value is 1" 
"The value is 2" 
"Unknown value"

si défini

Un cas particulier pour l'instruction 'if' est le "si défini", qui est utilisé pour tester l'existence d'une variable. Voici la syntaxe générale de l'instruction.

if defined somevariable somecommand

Voici un exemple de la façon dont l'instruction «si définie» peut être utilisée.

Example

@echo off 
SET str1 = String1 
SET str2 = String2 
if defined str1 echo "Variable str1 is defined"

if defined str3 (echo "Variable str3 is defined") else (echo "Variable str3 is not defined")

Output

La commande ci-dessus produit la sortie suivante.

"Variable str1 is defined" 
"Variable str3 is not defined"

s'il existe

Un autre cas particulier pour l'instruction 'if' est le "si existe", qui est utilisé pour tester l'existence d'un fichier. Voici la syntaxe générale de l'instruction.

If exist somefile.ext do_something

Voici un exemple de la façon dont l'instruction «if exists» peut être utilisée.

Example

@echo off 
if exist C:\set2.txt echo "File exists" 
if exist C:\set3.txt (echo "File exists") else (echo "File does not exist")

Output

Supposons qu'il existe un fichier appelé set2.txt dans le lecteur C et qu'il n'y a pas de fichier appelé set3.txt. Ensuite, ce sera la sortie du code ci-dessus.

"File exists"
"File does not exist"