DOS/If
Introduction
modifierCommande interne DOS, elle est utilisée pour exécuter une commande si une condition est vraie.
Utilisation
modifierIF 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
modifierIF 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
modifierIF "%1" == "" ( echo syntaxe : fichier_texte fichier_binaire exit )
IF "%1" == "toto" ( echo le parametre est bien toto exit )
Condition
modifierLa commande IF supporte différents types de condition.
Tester le code de retour
modifierToute 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
modifierIF 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
modifierIF 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 deLSS
: 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
modifierIF DEFINED variable commande
Teste si la variable indiquée existe.