Objet :Exécuter l'une des différentes séries de commandes en fonction des valeurs des expressions conditionnelles.

 

Format :IFF condition1 THEN

commandset1

[ELSEIFF condition2 THEN

commandset2 ]

...

[ELSE

commandset3 ]

ENDIFF

 

condition1,2,3

Expressions conditionnelles

jeu de commandes1

Une ou plusieurs commandes à exécuter si la condition 1 est VRAIE

commandset2

Une ou plusieurscommandes à exécuter si la condition 1 est FAUX, mais que lacondition 2 est VRAIE.

commandset3

Une ou plusieurscommandes à exécuter si lesconditions 1 et 2 sont FAUSSES.

 

Voir aussi : IF et @IF.

 

Utilisation :

 

IFFest similaire à IF, mais il peut exécuter un jeu de commandes lorsqu'une expression conditionnelle est vraie et un autre jeu de commandes lorsqu'elle est fausse . L' utilisation répétée de la clause optionnelle ELSEIFF permet à IFF d'évaluer séquentiellement plusieurs expressions conditionnelles indépendantes etd'exécuter le jeu de commandes associé à la première expression conditionnelle VRAIE  ou, si aucune n'est vraie, le jeu de commandes associé à la clause optionnelle ELSE. Après l'exécution de l'un desjeux de commandes, la commande située après la clause ENDIFF sera exécutée.

 

Vous devez commencer une nouvelle ligne ou inclure un séparateur de commande:

 

•après chaque THEN

•avant chaque ELSEIFF

•avant et après la clauseELSE.

 

Les commandes individuelles de chaque jeu de commandes peuvent être des lignes distinctes d'un fichier batch ou être séparées par des séparateurs de commandes, dans n'importe quelle combinaison. Un jeu de commandes peut également être vide. Les commandes individuelles d'un jeu de commandes peuvent inclure n'importe quelle commande interne, alias, commande externe ou fichier batch.

 

Lesinstructions IFF peuvent êtreimbriquées, c'est-à-dire qu' un jeu de commandes peut inclure un autre groupe IFF / ENDIFF. Vous devez vous assurer que chaque commande / jeu de commandes est syntaxiquement correct. Si un groupe IFF / ENDIFF "interne" est erroné, il se peut qu'il ne soit détecté qu'après l'exécution de l'ENDIFF "externe".

 

Si le dernier argument de la ligne est un simple (, ilest interprété comme le début d'un groupe de commandes. IFF ajoutera les lignes suivantes (dans un fichier batch) ou vous demandera d'autres données (à la ligne de commande) jusqu'à ce qu'il obtienne un )final .

 

Remarques

 

Avant d'utiliser une  instruction GOTO à l'intérieur d'une instruction IFF, lisez attentivement les mises en garde concernant GOTO et IFF sous la  commande GOTO.

 

Si vous envoyez des données à un IFF, elles seront transmises à la ou aux commandes qui suivent l'IFF, et non à l'IFF lui-même.

 

Exemple :

 

L'alias de cet exemple vérifie si le paramètre est un sous-répertoire. Si c'est le cas, l'alias supprime les fichiers du sous-répertoire et le supprime (saisissez ceci sur une seule ligne) :

 

alias prune `iff isdir %1 then & del /s /x /z %1 & else & echo %1 is not a directory! & endiff`