DOS/If
Un livre de Wikibooks.
Sections |
[modifier] Introduction
Commande interne DOS, elle est utilisée pour exécuter une commande si une condition est vraie.
[modifier] 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.
[modifier] 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.
[modifier] Exemples
IF "%1" == "" ( echo syntaxe : fichier_texte fichier_binaire exit )
IF "%1" == "toto" ( echo le parametre est bien toto exit )
[modifier] Condition
La commande IF supporte différents types de condition.
[modifier] 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 à 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 à retourné un code strictement inférieur à n.
Exemple:
IF NOT ERRORLEVEL 1 echo OK
[modifier] 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.
[modifier] 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.
[modifier] Tester une variable d'environnement
IF DEFINED variable commande
Teste si la variable indiquée existe.