1001 Astuces Nam@ni
http://www.namani.net

If

 

 

 

Syntaxe:

IF {NOT} [Condition] [Commande]

 

NOT

 

Tourne la condition dans son contraire: "Si la condition n'st pas réalisée, alors...".

Condition

 

Indique l'une des trois variantes exposées plus loin.

Commande

 

Indique une commande ou un utilitaire MS-DOS qui sera exécuté selon que la condition est réalisée ou non.

 

 

 

Notes:

Les renvois dans un fichier de commandes sont toujours soumis à une condition. Vous pouvez, par exemple, poursuivre le traitement à condition qu'un certain fichier existe déjà.

Cette condition peut être formulée de la façon suivante:

 

IF EXIST Fichier

 

Cette condition vérifie tout d'abord l'existence du fichier, et ce n'est qu'ensuite et seulement si le fichier existe bel et bien sur le système, que la commande est exécutée.

IF Valeur==Valeur

 

Vérifie tout d'abord si les deux valeurs sont identiques. Si c'est le cas, la commande s'exécute aussitôt.

IF ERRORLEVEL

 

Si un programme restitue un code d'erreur, celui-ci peut servir de condition pour décider de la suite des opérations.

 

    IF EXIST Fichier

Cette instruction vérifie la présence d'un fichier et décide ensuite d'exécuter ou non la commande qui suit.

 

 

 

Exemple:

 

Si vous voulez renommer un fichier, vous devez tout d'abord vérifier sa présence sur le système afin d'éviter les messages d'erreur.

 


IF EXIST FICHIER
GOTO RENAME
ECHO Le FICHIER est introuvable
GOTO FIN
:RENAME
REN FICHIER NOUVEAUNOM
:ECHO Le FICHIER a été renommé
:FIN

 

    IF Valeur1==Valeur2

Avec cette syntaxe, la commande IF vous offre la possibilité de comparer deux valeurs et de décider de la suite des opérations selon qu'elles sont identiques ou non.

Par exemple, pour vérifier si l'utilisateur a indiqué un lecteur de disquettes, intégrez la séquence suivante dans votre fichier de commandes:

 


FOR %%X IN (A: B: a: b:) DO IF " %1 " = " %%X " GOTO OK
FOR %%X IN (A B a b) DO IF " %1 " = " %%X " GOTO DEUXP
ECHO Vous avez spécifié un disque dur.
GOTO FIN
:DEUXP
ECHO Le nom du lecteur doit être suivi de deux-points.
GOTO FIN
:OK

Avec la première instruction, le programme vérifie s'il s'agit d'un lecteur de disquettes. Si c'est le cas, il renvoie à l'étiquette correspondante. Dans le cas contraire, il vérifie si l'utilisateur a bien tapé deux-points après la désignation du périphérique. Si ce n'est pas non plus le cas, il est fort probable que l'utilisateur ait indiqué un lecteur non valide. Vous pouvez bien évidemment étendre ce type de vérification à d'autres lecteurs.

Le second signe égal indique qu'il s'agit de vérifier si les deux valeurs sont identiques.

 


ECHO OFF
IF NOT X==x GOTO FIN
ECHO Ce message n'est pas visible.
:FIN

Dans un fichier de commandes, la comparaison X==x ne peut en aucun cas être vraie.

Pour vérifier dès le début de la procédure si l'utilisateur a spécifié ou non un paramètre, introduisez la séquence suivante:

 


IF %1\==\ GOTO SYNTAXE
GOTO OK
:SYNTAXE
ECHO Le programme est lancé après la spécification de xxx.
GOTO FIN
:OK

La première ligne n'est vraie que si \ est égal \, mais cela n'arrive que si %1 est vide, ou plus précisément, si le paramètre de la commande indiquée est absent. La procédure génère un message en conséquence.

Vous pouvez aussi formuler cela sous la forme:

 


IF "%1\"==" "