Commande : if

  IF effectue des traitements conditionnels dans les programmes batch.
  IF est une commande de FICHIER BATCH / AUTOEXEC.BAT.
  Elle peut aussi être utilisée sur la ligne de commande.

Syntaxe :

  IF [NOT] ERRORLEVEL nombre commande
  IF [NOT] chaîne1==chaîne2 commande
  IF [NOT] EXIST nomfichier commande
     lecteur     La lettre du lecteur, par exemple C:
     chemin      Le répertoire, par exemple \exemple\
     nomfichier  Le fichier, par exemple test.txt

Options :

  NOT               Spécifie que le shell de commandes ne doit exécuter
                    la commande que si la condition est fausse.
                    (Sans cela, la commande sera exécutée si la
                    condition est vraie.)
  ERRORLEVEL nombre Spécifie une condition vraie si le dernier programme
                    exécuté a retourné un code de sortie égal ou
                    supérieur au nombre spécifié.
  commande          Spécifie la commande à exécuter si la condition est
                    remplie.
  chaîne1==chaîne2  Spécifie une condition vraie si les chaînes de texte
                    spécifiées correspondent.
  EXIST nomfichier  Spécifie une condition vraie si le nom de fichier
                    spécifié existe.

Commentaires :

  ERRORLEVEL nombre :  Les programmes DOS renvoient un nombre
                       lorsqu'ils quittent, et ce nombre contient parfois
                       des informations sur la réussite du programme.
                       Si le dernier programme qui a quitté a renvoyé
                       le nombre donné, alors la condition est vraie.
  string1==string2     Si les deux chaînes de caractères sont égales,
                       alors la condition est vraie.
  exist [lecteur]      Si le fichier donné est là, alors la
        [chemin]       condition est vraie
        nomfichier

  IF est une commande interne à command.com est ne nécessite aucun
  autre fichier pour fonctionner.

Exemples :

  DANS UN FICHIER .BAT / AUTOEXEC.BAT :
    if exist c:\kernel.sys ECHO Le kernel existe
                  (affiche un message si le kernel existe)
    set A=freedos
    set B=freedos
    set C=autredos
    if %A%==%B% ECHO A et B sont la même chaîne
                  (A et B sont "freedos", donc le message apparaîtra)
    if %A%==%C% ECHO A et C sont la même chaîne
                  (A est "freedos", C est "autredos", donc aucun message
                   n'apparaîtra)
    if not %A%==%C% ECHO A et C ne sont pas la même chaîne
                  (A est "freedos", C est "autredos", comme ils ne sont
                  PAS identiques, le message apparaîtra)

Voir également :

  autoexec.bat
  fichiers batch
  choice
  goto

  Copyright © 2003 Robert Platt, mis à jour en 2007 par W. Spiegl.
  Traduit en 2020 par Berki Yenigün.

  Ce fichier est dérivé de FreeDOS Spec Command HOWTO.
  Voyez le fichier H2Cpying pour les conditions de copie.