Recherche…


Syntaxe

  • if [/ i] StringToCompare1 == StringToCompare2 (commandA) sinon (commandB)

  • si errorlevel 1 (commandA) sinon (commandB)

  • if% errorlevel% == 1 (commandA) sinon (commandB)

  • si existe Nom de fichier (commandA) sinon (commandB)

  • si défini NomVariable (commandA) sinon (commandB)

Remarques

Il y a un peu de syntaxe à choisir dans une instruction if . Nous utiliserons if string1==string2 comme exemple.

Syntaxes 1 ligne

  • if string1==string2 commandA
  • if string1==string2 (commandA)
  • if string1==string2 (commandA) else (commandB)
  • if string1==string2 (commandA) else commandB
  • if string1==string2 (commandA)else (commandB)
  • if string1==string2 (commandA)else commandB

Syntaxes multilignes

if string1==string2 (
    commandA
)

Ou

if string1==string2 (
    commandA
) else (
    commandB
)

Il y a encore des syntaxes supplémentaires disponibles.

Comparer des nombres avec un relevé IF

SET TEST=0

IF %TEST% == 0 (
    echo TEST FAILED
) ELSE IF %TEST% == 1 (
    echo TEST PASSED
) ELSE (
    echo TEST INVALID
)

Comparaison de chaînes

IF "%~1" == "-help" (
    ECHO "Hello"
)

%1 fait référence au premier argument de ligne de commande et ~ supprime toutes les citations qui ont été inclus quand a été appelé le script.

Comparer le niveau d'erreur

If Errorlevel 1 (
    Echo Errorlevel is 1 or higher
    
    REM The phrase "1 or higher" is used because If Errorlevel 1 statement means:
    REM                                          If %Errorlevel% GEQ 1
    REM                                      Not If %Errorlevel% EQU 1
)

ou

If "%Errorlevel%"=="1" (
    Echo Errorlevel is 1
)

Le script ci-dessus vérifie la variable Errorlevel (intégrée). L'opérateur not peut être utilisé.

Set "Test=%Errorlevel%"

If "%Test%" == "1" (
    Echo Errorlevel is 1
)

Celui-ci fonctionne également.

Veuillez noter que certaines commandes n'affectent pas le niveau d'erreur :

  • Pause
  • Écho
  • Endlocal
  • Pour
  • Si
  • Pause
  • Rem
  • Rd / Rmdir
  • Ensemble
  • Titre

Les commandes suivantes définissent mais pas effacer errorlevel :

  • Cls
  • Aller à
  • Clés
  • Popd
  • Décalage

Les commandes suivantes définissent les codes de sortie mais pas le niveau d'erreur :

  • Rd / Rmdir

Les commandes suivantes définissent errorlevel mais pas les codes de sortie :

  • Md / ​​Mkdir

Vérifiez si le fichier existe

If exist "C:\Foo\Bar.baz" (
    Echo File exist
)

Cela vérifie si le fichier C: \ Foo \ Bar.baz existe. Si tel est le cas, echos File exist L'opérateur Not peut également être ajouté.

Si la variable existe / set

If Defined Foo (
    Echo Foo is defined
)

Cela vérifierait si une variable est définie ou non. Encore une fois, l'opérateur Not peut être utilisé.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow