IF |
Si |
---|---|
DR-DOS 6 | Interne |
Syntaxe
IF [NOT] condition command |
Paramètres
Nom | Description |
---|---|
condition | Ce paramètre permet d'indiquer la condition a vérifier. |
command | Ce paramètre permet d'indiquer la commande a exécuter si la condition est vrai. |
Description
Cette commande permet d'effectuer une commande conditionnelle. L'instruction DR-DOS est exécutée lorsque la condition IF est vraie. Lorsque la condition est fausse, la commande DR-DOS est ignorée et l'instruction suivante est exécutée. Le paramètre condition peut être l'une des suivantes :
- ERRORLEVEL number : Cette condition est vraie si le programme précédent avait un code de sortie supérieur ou égal à nombre. Vos programmes peuvent définir un code d'erreur pouvant ensuite être vérifié à l'aide de la commande IF ERRORLEVEL.
- string1==string2 : Lorsque string1 et string2 sont identiques, cette condition est vraie.
- EXIST filespec : Si filespec est sur l'unité de disque spécifié, «EXIST filespec» est vrai. Les chemins d'accès sont autorisés avec la spécification de fichier.
- DIREXIST dirpath : Si dirpath est sur l'unité de disque spécifié, «DIREXIST dirpath» est vrai.
Si vous incluez le paramètre NOT, le DR-DOS exécutera la commande lorsque la condition est fausse.
Remarque
- Vous devez toujours placer des guillemets autour de la chaîne de caractères de texte, afin d'éviter les erreurs de syntaxe si aucun paramètre n'est spécifié.
Exemples
L'exemple suivant permet d'effectuer deux tests avec la commande IF :
IF EXIST filespec commande: IF EXIST mafiche GOTO xyz DIR C: :xyz commande |
Cette condition est vraie si elle est exécutée avec mafiche sur l'unité de disque par défaut. La commande suivant l'étiquette xyz est exécutée. Si mafiche n'est pas trouvé, le GOTO xyz n'est pas exécuté et le traitement se poursuit avec la commande «DIR C:».
IF stringl==string2 commande: IF "%1"=="Jean" ECHO Que faites-vous ici? |
Le fichier de commandes contenant cette commande, en supposant que Jean soit nommé comme paramètre %1, exécute la commande de traitement par lots ECHO. «Que faites-vous ici?» est affiché. Si Jean n'est pas défini comme paramètre %1, la condition est fausse et la commande de traitement par lots ECHO n'est pas exécutée.
L'exemple suivant permet de montrer une commande de numéro IF ERRORLEVEL:
XCOPY %1 C:\QUERIES\DONEWITH IF ERRORLEVEL 1 GOTO nodelete DEL %1 :nodelete |
Ainsi, cette procède comme suit : La commande XCOPY est utilisée pour copier le fichier. Une fois l'opération terminée, XCOPY définit le niveau d'erreur sur 0 s'il se termine correctement et sur 1 en cas d'échec. En cas d'échec, la condition est vraie et la ligne «IF ERRORLEVEL 1 GOTO nodelete» est traitée. Cette situation garantit que le fichier n'est pas supprimé sauf s'il a été copié en premier.
Voici un exemple avec IF NOT EXIST :
IF NOT EXIST a: %1 COPY b: %1 a: myprog1 |
Ce fichier de commandes recherche un certain fichier sur l'unité de disque A:. La condition IF est exécutée avant myprog1 pour garantir
que le fichier requis se trouve sur l'unité de disque A:. Si le fichier ne se trouve pas sur l'unité de disque A:, la condition est vraie et la commande de copie est traitée,
en copiant le fichier à partir de l'unité de disque B: sur l'unité de disque A:. Si le fichier est sur l'unité de disque A:, la copie n'est pas traitée.