Поиск…


Синтаксис

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

  • если errorlevel 1 (commandA) else (commandB)

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

  • если существует Filename (commandA) else (commandB)

  • если определено VariableName (commandA) else (commandB)

замечания

В выражении if имеется несколько синтаксисов. Мы будем использовать, if string1==string2 в качестве примера.

1-строчные синтаксисы

  • 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

Многострочные синтаксисы

if string1==string2 (
    commandA
)

Или же

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

Есть еще некоторые дополнительные синтаксисы.

Сравнение чисел с оператором IF

SET TEST=0

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

Сравнение строк

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

где %1 относится к первому аргументу командной строки и ~ удаляет любые кавычки, которые были включены при вызове сценария.

Сравнение уровня ошибок

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
)

или же

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

В приведенном выше скрипте будет проверяться переменная Errorlevel (встроенная). not оператор.

Set "Test=%Errorlevel%"

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

Это тоже работает.

Обратите внимание, что некоторые команды не влияют на уровень ошибок :

  • Перерыв
  • эхо
  • Endlocal
  • За
  • Если
  • Пауза
  • Rem
  • Rd / Rmdir
  • Задавать
  • заглавие

Следующие команды устанавливают, но не очищают уровень ошибок :

  • Cls
  • Идти к
  • Ключи
  • Popd
  • сдвиг

Следующие команды устанавливают коды выхода, но не уровень ошибок :

  • Rd / Rmdir

Следующие команды устанавливают уровень ошибок, но не коды выхода :

  • Md / ​​Mkdir

Проверьте, существует ли файл

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

Это проверяет существование файла C: \ Foo \ Bar.baz. Если это существует, это файл echos File. Оператор Not также может быть добавлен.

Если переменная существует / задана

If Defined Foo (
    Echo Foo is defined
)

Это проверит, определена ли переменная или нет. Опять же, оператор Not может использоваться.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow