DOS/If

Un livre de Wikilivres.
< DOS
Commandes DOS

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 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[modifier | modifier le wikicode]

IF DEFINED variable commande

Teste si la variable indiquée existe.