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 .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow