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