Проверка кода завершения предыдущей команды

Проверка наличия переменной среды

Проверка существования заданного файла

Второй способ использования команды IF — это проверка существования заданного файла. Синтаксис для этого случая имеет вид:

IF [NOT] EXIST файл команда1 [ELSE команда2]

Условие считается истинным, если указанный файл существует. Кавычки для имени файла не требуются. Приведем пример командного файла, в котором с помощью такого варианта команды IF проверяется наличие файла, указанного в качестве параметра командной строки.

@ECHO OFFIF -%1==- GOTO NoFileSpecifiedIF NOT EXIST %1 GOTO FileNotExist:: Вывод сообщения о найденном файлеECHO Файл '%1' найден.GOTO:EOF:NoFileSpecified:: Файл запущен без параметровECHO В командной строке не указано имя файла.GOTO:EOF:FileNotExist:: Параметр командной строки задан, но файл не найденECHO Файл '%1' не найден.

Аналогично файлам команда IF позволяет проверить наличие в системе определенной переменной среды:

IF DEFINED переменная команда1 [ELSE команда2]

Здесь условие DEFINED применяется подобно условию EXISTS наличия заданного файла, но принимает в качестве аргумента имя переменной среды и возвращает истинное значение, если эта переменная определена. Например:

@ECHO OFFCLSIF DEFINED MyVar GOTO:VarExistsECHO Переменная MyVar не определенаGOTO:EOF:VarExistsECHO Переменная MyVar определена,ECHO ее значение равно %MyVar%

Еще один способ использования команды IF — это проверка кода завершения (кода выхода) предыдущей команды. Синтаксис для IF в этом случае имеет следующий вид:

IF [NOT] ERRORLEVEL число команда1 [ELSE команда2]

Здесь условие считается истинным, если последняя запущенная команда или программа завершилась с кодом возврата, равным либо превышающим указанное число.

Рассмотрим командный файл, который копирует файл my.txt на диск C: без вывода на экран сообщений о копировании, а в случае возникновения какой-либо ошибки выдает предупреждение:

@ECHO OFFXCOPY my.txt C:\ > NUL:: Проверка кода завершения копированияIF ERRORLEVEL 1 GOTO ErrOccurredECHO Копирование выполнено без ошибок.GOTO:EOF:ErrOccurredECHO При выполнении команды XCOPY возникла ошибка!

В операторе IF ERRORLEVEL … можно также применять операторы сравнения чисел, приведенные в табл. 2. Например:

IF ERRORLEVEL LEQ 1 GOTO Case1

Замечание. Иногда более удобным для работы с кодами завершения программ может оказаться использование переменной %ERRORLEVEL%. (строковое представление текущего значения кода ошибки ERRORLEVEL).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: