batch-file
Если утверждения
Поиск…
Синтаксис
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
может использоваться.