Вернуться   Компьютерный форум > Блоги > Базаров
Оценить эту запись

Проверка условий в командном файле

Запись от Базаров размещена 05.01.2015 в 23:06

Команда IF позволяет в зависимости от выполнения некоторых условий выполнять или не выполнять команды в командном файле.
Формат команды
IF условие команда
Параметры
команда - это любая допустимая команда (в том числе GOTO). Эта команда выполняется, если условие в команде IF истинно, в противном случае команда игнорируется;
условие - это одно из приведенных ниже выражений:
ERRORLEVEL число - условие истинно тогда, когда код завершения предыдущей выполненной программы больше заданного числа или равен ему (код завершения устанавливается программами при окончании их работы, по умолчанию этот код равен нулю);
строка1 == строка2 - условие истинно тогда, когда строка 1 и строка 2 полностью совпадают. Если в этих строках имеются символы %0 - %9, то вместо этих символов подставляются параметры командного файла;
EXIST имя-файла - условие истинно тогда, когда указанный файл существует;
NOT условие - истинно тогда, когда указанное условие ложно.
Пример
Создадим файл TYP.BAT, который выводит некоторый файл на экран. Формат вызова будет: TYP имя-файла. Мы будем проверять, задан ли при вызове параметр и существует ли указанный файл. Командный файл TYP.BAT может быть таким (справа в скобках приводятся номера строк файла):

В строке 2 проверяется, что параметр командного файла задан. Если параметр не задан, то происходит переход наметку no_param, выдается сообщение: "Должен быть задан параметр", и выполнение командного файла прекращается.
В строке 3 проверяется,что указанный в команде файл существует. Если он не существует, то выдается сообщение "Файл ... не найден" (... - параметр, заданный в команде TYP), и выполнение командного файла прекращается.
Замечание. Среди программ DOS ненулевые коды возврата (которые могут быть проверены с помощью команды IF ERRORLEVEL ...) могут устанавливать программы ChkDsk, Choice, Defrag, Deltree, DiskComp, DiskCopy, Find, Format, KeyB, Move, MSAV, Replace, Restore, Scandisk, SetVer и XCopy.
Сравнение с пустой строкой
Следует заметить, что при сравнении строк, содержащих символы параметров %0 - %9, следует проявлять осторожность. Например, сравнение второго параметра командного файла со строкой SSS не следует делать так: if %2 == SSS . . . Дело в том, что если в командном файле меньше двух параметров, то символы %2 будут замещены пустой строкой, и при выполнении команды возникнет ошибка. Еще опаснее сравнение if SSS == %2 . . ., так как в этом случае, если в командном файле меньше двух параметров, возможно выполнение совсем не той команды. Правильное сравнение выглядит так: if -%2 == -SSS . . . Оно годится в любом случае.
Размещено в Без категории
Просмотров 1083 Комментарии 0 Отправить другу ссылку на эту запись
Всего комментариев 0

Комментарии

 

Текущее время: 17:56. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.