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.