batch-file
Jeśli oświadczenia
Szukaj…
Składnia
if [/ i] StringToCompare1 == StringToCompare2 (commandA) else (commandB)
jeśli poziom błędu 1 (polecenie A) else (polecenie B)
jeśli% errorlevel% == 1 (polecenie A) else (polecenie B)
jeśli istnieje Nazwa pliku (polecenie A) else (polecenie B)
jeśli zdefiniowano VariableName (commandA) else (commandB)
Uwagi
W instrukcji if
można wybrać kilka składni. Jako przykładu użyjemy if string1==string2
.
Składnie 1-liniowe
-
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
Składnie wieloliniowe
if string1==string2 (
commandA
)
Lub
if string1==string2 (
commandA
) else (
commandB
)
Nadal dostępne są dodatkowe składnie.
Porównywanie liczb z instrukcją IF
SET TEST=0
IF %TEST% == 0 (
echo TEST FAILED
) ELSE IF %TEST% == 1 (
echo TEST PASSED
) ELSE (
echo TEST INVALID
)
Porównywanie ciągów
IF "%~1" == "-help" (
ECHO "Hello"
)
gdzie %1
odnosi się do pierwszego argumentu wiersza poleceń, a ~
usuwa wszelkie cudzysłowy, które zostały uwzględnione podczas wywoływania skryptu.
Porównywanie poziomu błędu
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
)
lub
If "%Errorlevel%"=="1" (
Echo Errorlevel is 1
)
Powyższy skrypt sprawdzi zmienną Errorlevel (wbudowaną). not
operatora może być używany.
Set "Test=%Errorlevel%"
If "%Test%" == "1" (
Echo Errorlevel is 1
)
Ten też działa.
Pamiętaj, że niektóre polecenia nie wpływają na poziom błędu :
- Przerwa
- Echo
- Endlocal
- Dla
- Gdyby
- Pauza
- Rem
- Rd / Rmdir
- Zestaw
- Tytuł
Następujące polecenia ustawiają, ale nie usuwają poziomu błędu :
- Cls
- Iść do
- Klucze
- Popd
- Zmiana
Następujące polecenia ustawiają kody wyjścia, ale nie poziom błędu :
- Rd / Rmdir
Następujące polecenia ustawiają poziom błędu, ale nie kody wyjścia :
- Md / Mkdir
Sprawdź, czy plik istnieje
If exist "C:\Foo\Bar.baz" (
Echo File exist
)
To sprawdza, czy istnieje plik C: \ Foo \ Bar.baz. Jeśli tak, to echo Plik istnieje Można także dodać operatora Not
.
Jeśli zmienna istnieje / jest ustawiona
If Defined Foo (
Echo Foo is defined
)
Sprawdziłoby to, czy zmienna jest zdefiniowana, czy nie. Ponownie można użyć operatora Not
.