IF |
Si |
---|---|
Zenith Data Systems Microsoft MS-DOS 2 | Interne |
Syntaxe
IF [NOT] condition command |
Paramètres
Nom | Description | |
---|---|---|
condition | Ce paramètre permet d'indiquer la condition devant être vraie pour exécuter la commande spécifiée ; les conditions que vous pouvez spécifier sont : | |
Condition | Description | |
ERROR LEVEL number | Cette condition est vrai si et seulement si le programme précédent exécuté par COMMAND avait un code de sortie de nombre spécifié ou supérieur à 0. Où number est la valeur du code de sortie du programme précédemment exécuté par le système. | |
EXIST filename | Cette condition est vrai si et seulement si le nom de fichier spécifié existe. | |
string1=string2 | Cette condition est vrai si et seulement si les deux chaînes sont identiques ; les paramètres remplaçables peuvent spécifier les chaînes de caractères dans cette condition ; les chaînes de caractères ne peuvent pas inclure de séparateurs intégrés. | |
NOT condition | Cette condition est vrai si et seulement si la condition est fausse ; NOT peut être appliqué à l'une des autres conditions. | |
command | Ce paramètre permet d'indiquer la commande MS-DOS a exécuté si c'est la condition est rempli. |
Description
Cette commande permet d'effectuer une commande conditionnelle.
Remarque
- La commande IF est utilisée pour permettre l'exécution conditionnelle de commandes MS-DOS dans le cadre d'un traitement par lots.
Concepts préliminaires
Les commandes résidentes de traitement par lots sont le plus souvent exécutées à partir d'un fichier de commandes, bien qu'elles puissent être utilisées directement à partir de la ligne de commande dans certains cas.
Remarque : Vous devez toujours terminer chaque ligne d'un fichier de traitement par lot en appuyant sur la touche RETURN.
L'instruction IF permet l'exécution conditionnelle de commandes. Lorsque la condition est vraie, la commande est exécutée. Sinon, la commande est ignorée.
Si une condition est vraie, le fichier de commandes exécutera la command ; sinon, il sera ignoré. La condition peut comparer deux chaînes de caractères, vérifier si un fichier existe sur le disque ou rechercher un numéro de ERROR LEVEL. La partie command de l'instruction IF peut inclure une instruction GOTO.
Les étiquettes GOTO doivent commencer par deux-points (:) et l'instruction GOTO exécutera la commande sur la ligne sous l'étiquette GOTO. Reportez-vous à la section sur la commande GOTO dans cette page pour plus d'informations sur son utilisation.
Vous pouvez également utiliser le paramètre remplaçable s avec dans l'instruction IF, en tant que variables à remplacer par des valeurs spécifiques au moment de l'exécution.
Les paramètres remplaçables %0 à %9 sont utilisés dans un fichier de traitement par lots en tant que paramètres "fictifs" étant remplacés séquentiellement par des valeurs réelles lors de l'exécution du fichier de traitement par lots.
Les paramètres sont remplacés, dans l'ordre, sur la ligne de commande. Une correspondance un à un est établie entre les commandes prototypes dans la ligne de commande et les paramètres remplaçables dans le fichier de traitement par lot. C'est-à-dire que '%1' représente la première valeur (nom, nombre ou texte) tapée après la commande, et ainsi de suite. Cette relation est illustrée dans l'exemple suivant.
L'exemple de ligne de commande ci-dessous correspond individuellement aux paramètres remplaçables affichés sous chaque composant de la ligne de commande :
Remarque : Le paramètre remplaçable '%0' est toujours remplacé par le nom de l'unité de disque (si spécifié) et le nom du fichier de traitement par lots.
Bien que vous ne puissiez utiliser que dix paramètres remplaçables au maximum dans un fichier de commandes (%0 à %9), vous pouvez éviter cette limitation en utilisant la commande SHIFT. La commande SHIFT décale les paramètres vers la gauche, un paramètre à la fois. Voir la commande SHIFT.
Entrée de ligne de commande
La commande IF utilise le paramètre condition pour vérifier trois types différents de conditions devant être remplies avant que l'instruction IF complète puisse être exécutée.
Ces trois types de conditions sont :
- Le paramètre string1 == string2 est vrai si, et seulement si, string1 et string2 sont identiques (après substitution de paramètre ; si la substitution est utilisée).
- Le paramètre IF EXIST vérifie si un fichier existe sur le disque désigné. Si le fichier existe, le paramètre EXIST est vrai et le fichier de commandes exécute la commande spécifiée incluse dans l'instruction IF.
ERROR LEVEL number |
Le paramètre condition est vrai si, et seulement si, le programme précédent exécuté par le système avait un code de sortie de number supérieur. (number est spécifié sous forme de valeur binaire.)
Remarque : La plupart des programmes MS-DOS renvoient actuellement un code de sortie de 0 à tout moment.
Les chaînes de caractères peuvent ne pas avoir de séparateurs intégrés (tels que des virgules ou des espaces).
Par exemple, vous pouvez inclure les commandes suivantes dans un fichier de traitement par lots pour vérifier qu'un fichier existe&nbs;:
IF EXIST %1 GOTO X GOTO Y :X ECHO C'EST UN FICHIER SUR UN DISQUE :Y |
Ceux-ci vous permettraient de spécifier un nom de fichier et que votre écran affiche le message :
C'EST UN FICHIER SUR UN DISQUE |
si le fichier spécifié existait sur le disque.
L'instruction IF suivante offre un autre exemple de fonctionnement :
IF EXIST filespec command |
L'instruction IF EXIST serait vraie si, et seulement si, filespec existe effectivement sur l'unité de disque désigné. Les noms de chemin ne peuvent pas être utilisés avec la variable filespec dans cette situation.
Les exemples suivants illustrent comment cela fonctionne lorsque le paramètre [NOT] précède le paramètre condition :
IF NOT condition |
L'instruction IF serait vraie si, et seulement si, le paramètre condition est faux.
L'exemple suivant illustre le paramètre IF EXIST long avec la commande GOTO :
IF EXIST FILEFORM.DOC GOTO XYZ - - - :XYZ command |
Cette commande amènera le processeur à accéder à l'étiquette :XYZ pour exécuter la command, si FILEFORM.DOC se trouve sur l'unité de disque par défaut. SI FILEFORM.DOC n'est pas trouvé, GOTO XYZ ne sera pas exécuté. Au lieu de cela, le traitement se poursuivrait avec la commande suivante dans l'ordre dans le fichier de commandes.
Par contre, si vous précisez :
IF NOT EXIST FILEFORM.DOC GOTO XYZ - - - :XYZ command |
la condition que FILEFORM.DOC ne se trouve pas sur l'unité de disque par défaut doit être remplie avant que la commande GOTO XYZ puisse être exécutée.
Si FILEFORM.DOC se trouve sur l'unité de disque par défaut, le traitement n'exécutera pas GOTO XYZ. Au lieu de cela, le traitement continuerait avec la commande suivante dans le fichier de commandes.
La commande IF utilisant le paramètre string1 == string2 est illustrée dans l'exemple suivant :
IF %1 == Bonjour ECHO Comment aller vous ? |
Si un fichier de commandes est exécuté avec cette commande, où Bonjour est donné comme paramètre %1, cela rendrait la condition vraie. La commande ECHO serait exécutée, provoquant l'affichage à l'écran le message suivant :
Comment aller vous ? |
Si Bonjour n'est pas donné comme paramètre %1, la condition ne serait pas vraie. La commande ECHO ne serait pas exécutée et le traitement continuerait avec la commande suivante dans le fichier de traitement par lots.