Commandes DOS

Introduction

modifier

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

Utilisation

modifier
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
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
IF "%1" == "" (
echo syntaxe : fichier_texte fichier_binaire
exit
)
IF "%1" == "toto" (
echo le parametre est bien toto
exit
)

Condition

modifier

La commande IF supporte différents types de condition.

Tester le code de retour

modifier

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
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
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
IF DEFINED variable commande

Teste si la variable indiquée existe.