Aller au contenu

DOS/If

Un livre de Wikilivres.
< DOS
Commandes DOS

Commande interne DOS, elle est utilisée pour exécuter une commande si une condition est vraie.

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.


IF "%1" == "" (
echo syntaxe : fichier_texte fichier_binaire
exit
)
IF "%1" == "toto" (
echo le parametre est bien toto
exit
)

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.