Exporter (0) Imprimer
Développer tout

If

Mis à jour: janvier 2005

S'applique à: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

If

Assure le traitement conditionnel dans les programmes de commandes.

Syntaxe

if [not] errorlevel Nombre Commande [else Expression]

if [not] Chaîne1==Chaîne2 Commande [else Expression]

if [not] exist Nom_Fichier Commande [else Expression]

Si les extensions de commandes sont activées, utilisez la syntaxe suivante :

if [/i] Chaîne1 OpComparaison Chaîne2 Commande [else Expression]

if cmdextversion Nombre Commande [else Expression]

if defined Variable Commande [else Expression]

Paramètres
not
Spécifie que la commande doit être exécutée uniquement si la condition est fausse.

errorlevel Nombre
Spécifie que la condition est vraie uniquement si le programme précédent exécuté par Cmd.exe a renvoyé un code de sortie égal ou supérieur à Nombre.

Commande
Spécifie la commande qui doit être exécutée si la condition précédente est remplie.

Chaîne1 == Chaîne2
Ne reconnaît que la condition est vraie que si Chaîne1 et Chaîne2 sont identiques. Ces valeurs peuvent être des chaînes littérales ou des variables de fichier de commandes (par exemple, %1). Vous n'avez pas besoin d'utiliser de guillemets autour des chaînes littérales.

exist Nom_Fichier
Ne reconnaît la condition comme étant vraie que si Nom_Fichier existe.

Op_Comparaison
Spécifie un opérateur de comparaison en trois lettres. Le tableau suivant répertorie les valeurs valides de OpComparaison.

 

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 à

/i
Force les comparaisons de chaînes à ne pas tenir compte de la casse. Vous pouvez utiliser /i sur la forme Chaîne1==Chaîne2 de if. Ces comparaisons sont génériques, en ce sens que si Chaîne1 et Chaîne2 sont tous deux constitués uniquement de chiffres numériques, les chaînes sont converties en nombres et une comparaison numérique est effectuée.

cmdextversion Nombre
Spécifie qu'une condition est vraie uniquement si le numéro de version interne associé à l'extension de commande de Cmd.exe est supérieur ou égal à Nombre. La première version est égale à 1. Elle est incrémentée d'une unité lorsque des améliorations significatives sont ajoutées aux extensions de commandes. L'expression conditionnelle cmdextversion n'est jamais vraie lorsque les extensions de commandes sont désactivées (par défaut, les extensions de commandes sont activées).

defined Variable
Ne reconnaît la condition comme étant vraie que si Variable est défini.

Expression
Spécifie qu'une commande de ligne de commande et tous ses paramètres doivent être transmis à la commande dans une clause else.

/?
Affiche l'aide à partir de l'invite de commandes.

Remarques
  • Si la condition spécifiée dans une commande if est vraie, la commande qui suit la condition est exécutée. Si la condition est fausse, la commande contencue dans la clause if est ignorée et la commande exécute toute commande contenue dans la clause else (si vous spécifiez une commande dans la else clause).

  • Lorsqu'un programme s'arrête, il renvoie un code de sortie. Pour utiliser des codes de sortie comme conditions, utilisez errorlevel.

  • Utilisation de definedVariable

    Si vous utilisez definedVariable, 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 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 retourné le code 0 :answer1 echo Le programme a retourné le code 1 goto end :end echo Terminé ! 
    
    Vous pouvez également utiliser les opérateurs de comparaison Op_Comparaison 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 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 de variable d'environnement nommée CMDEXTVERSION, auquel cas vous obtenez plutôt sa valeur.

  • Utilisation de la clause else

    Vous devez utiliser la clause else sur la même ligne que la commande, après la clause if. Exemple :

    IF EXIST Nom_Fichier. ( del Nom_Fichier. ) ELSE ( echo Nom_Fichier. missing. )
    
    L'exemple de code suivant ne fonctionne pas car vous devez terminer la commande del par une nouvelle ligne :

    IF EXIST Nom_Fichier. del Nom_Fichier. ELSE echo Nom_Fichier. missing
    
    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 Nom_Fichier. del Nom_Fichier. ELSE echo Nom_Fichier. missing
    
    Pour tout mettre en forme sur une seule ligne, utilisez la structure suivante de l'instruction d'origine :

    IF EXIST Nom_Fichier. (del Nom_Fichier.) ELSE echo Nom_Fichier. missing
    
Exemples

Pour afficher le message « Impossible de trouver le fichier de données » si le fichier Product.dat est introuvable, tapez :

if not exist product.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.

Légende de mise en forme

 

Mise en forme Signification

Italique

Informations que l'utilisateur doit fournir

Gras

Éléments que l'utilisateur doit taper tels qu'ils sont indiqués

Points de suspension (...)

Paramètre pouvant être répété plusieurs fois dans une ligne de commande

Entre crochets ([])

Éléments facultatifs

Entre accolades ({}), avec séparation des options par une barre verticale (|). Exemple : {pair|impair}

Ensemble d'options parmi lesquelles l'utilisateur doit en choisir une seule

Police Courier

Code ou données de programme

Voir aussi

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft