< DOS

Introduction

Commande interne DOS, elle est utilisée pour exécuter une commande si une condition est vraie.

Utilisation

IF condition commande

commande n'est exécutée que si condition est vraie.

IF condition commande_vrai ELSE commande_faux

La commande commande_vrai n'est exécutée que si condition est vraie. Sinon, la commande commande_faux est exécutée.

Plusieurs commandes

IF condition (
commandes
)

Les commandes ne sont exécutées que si condition est vraie.

IF condition (
commandes_vrai
) ELSE (
commandes_faux
)

Les commandes commandes_vrai ne sont exécutées que si condition est vraie. Sinon, les commandes commandes_faux sont exécutées.


Exemples

IF "%1" == "" (
echo syntaxe : fichier_texte fichier_binaire
exit
)
IF "%1" == "toto" (
echo le parametre est bien toto
exit
)

Condition

La commande IF supporte différents types de condition.

Tester le code de retour

Toute application ou commande retourne un entier, valant 0 quand tout s'est bien passé, et différent de zéro sinon.

IF ERRORLEVEL n commande

Cette syntaxe teste si la commande précédente a retourné un code supérieur ou égal à n.

Exemple:

IF ERRORLEVEL 1 echo Erreur
IF NOT ERRORLEVEL n commande

Cette syntaxe teste si la commande précédente a retourné un code strictement inférieur à n.

Exemple:

IF NOT ERRORLEVEL 1 echo OK

Tester l'existence d'un fichier

IF EXIST nom_fichier commande

La commande est exécutée si le fichier existe.

IF NOT EXIST nom_fichier commande

La commande est exécutée si le fichier n'existe pas.

Comparer deux chaînes de caractères

IF chaine1==chaine2 commande
IF NOT chaine1==chaine2 commande
IF [/I] chaine1 op chaine2 commande

L'option /I permet d'ignorer la casse (A=a). op peut valoir :

  • EQU : égal à
  • NEQ : différent de
  • LSS : inférieur à
  • LEQ : inférieur ou égal à
  • GTR : supérieur à
  • GEQ : supérieur ou égal à

La comparaison de chaîne est lexicographique. Si les deux chaînes ne sont composées que de chiffres, une comparaison numérique est effectuée.

La variable d'environnement %ERRORLEVEL% contient le code de retour de la dernière commande, et peut être testée avec cette syntaxe.

Tester une variable d'environnement

IF DEFINED variable commande

Teste si la variable indiquée existe.

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.