Assure le traitement conditionnel dans les programmes de commandes.
Si les extensions de commandes sont activées, utilisez la syntaxe suivante :
Opérateur | Description |
---|---|
EQU | Égal à |
NEQ | Différent de |
LSS | Inférieur à |
LEQ | Inférieur ou égal à |
GTR | Supérieur à |
GEQ | Supérieur ou égal à |
Si vous utilisez defined Variable, les trois variables suivantes sont ajoutées : %errorlevel%, %cmdcmdline% et %cmdextversion%.
%errorlevel% se développe en une représentation sous forme de chaîne de la valeur en cours de errorlevel, à condition qu'il n'existe pas encore de variable d'environnement nommée ERRORLEVEL, auquel cas vous obtenez plutôt sa valeur. L'exemple suivant montre comment utiliser errorlevel après avoir exécuté un programme de commandes :
goto answer%errorlevel%
:answer0
echo Le programme a renvoyé le code 0
:answer1
echo Le programme a renvoyé le code 1
goto end
:end
echo Terminé !
Vous pouvez également utiliser les opérateurs de comparaison OpComparaison suivants :
if %errorlevel% LEQ 1 goto okay
%cmdcmdline% développe la ligne de commande d'origine passée à Cmd.exe avant un traitement quelconque par Cmd.exe, à condition qu'il n'existe pas encore de variable d'environnement nommée cmdcmdline, auquel cas vous obtenez plutôt sa valeur.
%cmdextversion% se développe en une représentation sous forme de chaîne de la valeur en cours de cmdextversion, à condition qu'il n'existe pas encore de variable d'environnement nommée CMDEXTVERSION, auquel cas vous obtenez plutôt sa valeur.
Vous devez utiliser la clause else sur la même ligne que la commande, après la clause if. Exemple :
IF EXIST nomfichier. (
del nomfichier.
) ELSE (
echo nomfichier. manquant.
)
L'exemple de code suivant ne fonctionne pas car vous devez terminer la commande del par une nouvelle ligne :
IF EXIST nomfichier. del nomfichier. ELSE echo nomfichier. manquant
L'exemple de code suivant ne fonctionne pas car vous devez utiliser la clause else sur la même ligne que la fin de la commande if :
IF EXIST nomfichier. del nomfichier.
ELSE echo nomfichier. manquant
Pour tout mettre en forme sur une seule ligne, utilisez la structure suivante de l'instruction d'origine :
IF EXIST nomfichier. (del nomfichier.) ELSE echo nomfichier. manquant
Si le fichier Produit.dat est introuvable, le message suivant s'affiche :
if not exist produit.dat echo Impossible de trouver le
fichier de données
Si une erreur survient pendant le formatage de la disquette placée dans le lecteur A, l'exemple suivant affiche un message d'erreur :
:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo Une erreur s'est produite durant le formatage.
:end
echo Fin du programme de commandes.
Si aucune erreur ne s'est produite, le message d'erreur ne s'affiche pas.
Vous ne pouvez pas utiliser la commande if pour vérifier directement l'existence d'un répertoire ; cependant, un périphérique fictif (NUL) existe dans chaque répertoire. Par conséquent, vous pouvez vérifier sa présence pour déterminer si un répertoire existe. L'exemple suivant vérifie l'existence d'un répertoire :
if exist c:monrep\nul goto traitement
Converted from CHM to HTML with chm2web Standard 2.75 (unicode) |