batch-file
Si déclarations
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"
)
où %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é.