Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Выполняет условную обработку в пакетных программах.
Syntax
if [not] ERRORLEVEL <number> <command> [else <expression>]
if [not] <string1>==<string2> <command> [else <expression>]
if [not] exist <filename> <command> [else <expression>]
Если расширения команд включены, используйте следующий синтаксис:
if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if cmdextversion <number> <command> [else <expression>]
if defined <variable> <command> [else <expression>]
Parameters
| Parameter | Description |
|---|---|
| not | Указывает, что команда должна выполняться только в том случае, если условие равно false. |
ошибка <number> |
Задает истинное условие только в том случае, если предыдущая программа, запущенная Cmd.exe, вернула код выхода, равный или превышающий число. |
<command> |
Указывает команду, которая должна выполняться, если предыдущее условие выполнено. |
<string1>==<string2> |
Задает истинное условие только в том случае, если строки string1 и string2 совпадают. Эти значения могут быть литеральными строками или пакетными переменными (например, %1). Не нужно заключать литеральные строки в кавычки. |
существует <filename> |
Указывает истинное условие, если указанное имя файла существует. |
<compareop> |
Указывает трехбуквенный оператор сравнения, в том числе:
|
| /i | Принудительное сравнение строк пропускает регистр. Вы можете использовать /i в string1==string2 форме if. Эти сравнения являются общими в том смысле, что если строки string1 и string2 состоят только из числовых цифр, строки преобразуются в числа и выполняется численное сравнение. |
cmdextversion <number> |
Указывает истинное условие, только если внутренний номер версии, связанный с функцией расширений команд Cmd.exe, равен или больше указанного числа. Первая версия — 1. Он увеличивается на увеличение одного при добавлении значительных улучшений в расширения команд. Условное условие cmdextversion никогда не истинно, когда расширения команд отключены (по умолчанию расширения команд включены). |
определенный <variable> |
Задает истинное условие, если определена переменная . |
<expression> |
Указывает команду командной строки и любые параметры, которые должны быть переданы команде в предложении else . |
| /? | Отображает справку в командной строке. |
Remarks
Если условие, указанное в предложении if , истинно, выполняется команда, следующая за условием. Если условие ложно, команда в предложении if игнорируется, и команда выполняет любую команду, указанную в предложении else .
Когда программа останавливается, она возвращает код выхода. Чтобы использовать коды выхода в качестве условий, используйте параметр errorlevel .
Если используется defined, в среду добавляются следующие три переменные: %errorlevel%, %cmdcmdline%и %cmdextversion%.
%errorlevel%: Разворачивается в строковое представление текущего значения переменной среды ERRORLEVEL. Эта переменная предполагает, что уже нет существующей переменной среды с именем ERRORLEVEL. Если есть, вместо этого вы получите это значение ERRORLEVEL.
%cmdcmdline%: Разворачивается в исходную командную строку, которая была передана Cmd.exe до любой обработки Cmd.exe. Предполагается, что уже нет существующей переменной среды с именем CMDCMDLINE. Если есть, вместо этого вы получите это значение CMDCMDLINE.
%cmdextversion%: Разворачивает в строковое представление текущего значения cmdextversion. Предполагается, что уже нет существующей переменной среды с именем CMDEXTVERSION. Если есть, вместо этого вы получите это значение CMDEXTVERSION.
Вы должны использовать предложение else в той же строке, что и команда после if.
Examples
Чтобы отобразить сообщение не удается найти файл данных, если файл Product.dat не удается найти, введите:
if not exist product.dat echo Cannot find data file
Чтобы отформатировать диск на диске A и отобразить сообщение об ошибке, если ошибка возникает во время процесса форматирования, введите следующие строки в пакетном файле:
:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.
Чтобы удалить файл Product.dat из текущего каталога или отобразить сообщение, если Product.dat не найдено, введите следующие строки в пакетном файле:
IF EXIST Product.dat (
del Product.dat
) ELSE (
echo The Product.dat file is missing.
)
Note
Эти строки можно объединить в одну строку следующим образом:
IF EXIST Product.dat (del Product.dat) ELSE (echo The Product.dat file is missing.)
Чтобы повторить значение переменной среды ERRORLEVEL после запуска пакетного файла, введите следующие строки в пакетном файле:
goto answer%errorlevel%
:answer1
echo The program returned error level 1
goto end
:answer0
echo The program returned error level 0
goto end
:end
echo Done!
Чтобы перейти к правильной метки, если значение переменной среды ERRORLEVEL меньше или равно 1, введите:
if %errorlevel% LEQ 1 goto okay