Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Переходы в командном файле

Terminate batch job (Y/N)?

Strike a key when ready...

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

Во время выполнения командного файла может возникнуть необходимость его приостановки, например, для того, чтобы можно было поставить нужную дискету. Команда pause позволяет приостановить выполнение командного файла и ждать, пока не будет нажата какая-либо клавиша.

Формат команды:

pause.

При выполнении этой команды на экран выводится сообщение:

(Нажмите любую клавишу, когда будете готовы)

и выполнение командного файла приостанавливается. Если нажать любую алфавитно-цифровую клавишу, Пробел или Enter, выполнение командного файла будет продолжено. Если нажать CTRL+C или Ctrl+Break, то будет выведено сообщение:

(Прервать выполнение командного файла, Y — да, N — нет)

Если ответить (Y), то выполнение командного файла будет окончено, а оставшиеся команды из командного файла будут проигнорированы. Если ответить (N), то выполнение командного файла будет продолжено со следующей команды.

Полезно перед выдачей команды pause выводить сообщение о том, какие надо выполнить действия. Например:

echo Поставьте дискету DISK01 на дисковод А:

pause

 

Командный файл может содержать метки и команды перехода. Это позволяет управлять порядком выполнения команд в файле.

Любая строка командного файла, начинающаяся с двоеточия"«:», воспринимается при обработке командного файла как метка. Имя метки определяется набором символов, следующих за двоеточием до первого пробела или конца строки (остаток строки после первого провела игнорируется).

Для того чтобы указать командному процессору DOS, что требуется продолжить выполнение команд из командного файла, начиная со строки, которая следует сразу после некоторой метки, надо воспользоваться командой

GOTO метка

Если метка в команде GOTO не указана, то процесс пакетной обработки завершается.

Пример:

GOTO xxx

:ххх;. REM продолжение выполнения командного файла

 

В этом примере после выполнения команды GOTO xxx выполнение командного файла продолжается со строки, следующей за меткой ххх, т.е. со строки

REM продолжение выполнения командного файла

 

Команда IF позволяет в зависимости от выполнения некоторых •Условий выполнять или не выполнять команды в командном файле.


Формат команды:

IF условие команда

Параметры:

команда – это любая допустимая команда (в том числе GOTO). Эта команда выполняется, если условие в команде IF истинно, в пробивном случае команда игнорируется;

условие – это одно из приведенных ниже выражений:

ERRORLEVEL число – условие истинно тогда, когда код завершения предыдущей выполненной программы больше заданного числа или равен ему (код завершения устанавливается программами при окончании их работы, по умолчанию – этот код равен нулю);

строка1= =строка2 – условие истинно тогда, когда строка1 и строка2 полностью совпадают. Если в этих строках имеются символы %0–%9, то вместо этих символов подставляются параметры командного файла;

EXIST имя-файла – условие истинно тогда, когда указанный файл существует;

NOT условие – истинно тогда, когда указанное условие ложно.

 

Пример Создадим файл TYP.BAT, который выводит некоторый файл на экран. Формат вызова будет:

TYP имя-файла

Мы будем проверять, задан ли при вызове параметр и существует ли указанный файл. Командный файл TYP.BAT может быть таким (справа в скобках приводятся номера строк файла):

 

echo off (1)

if -%1 == + goto no_param (2)

if not exist %1 goto not exist (3)

type %1 ~ (4)

goto exit (5)

 

:no_param: (6)

echo Должен быть задан параметр (7)

goto exit (8)

 

:not_exist (9)

echo Файл %1 не найден (10)

 

:exit (11)

 

В строке 2 проверяется, что параметр командного файла задан. Вели параметр не задан, то происходит переход на метку no_param. В этом случае выдается сообщение

Должен быть задан параметр

и выполнение командного файла прекращается.

В строке 3 проверяется, что указанный в команде файл существует. Если он не существует, то выдается сообщение

Файл.... не найден

(.... – параметр, заданный в команде TYP), и выполнение командного файла прекращается.

Следует заметить, что при сравнении строк, содержащих символы параметров %0 — %9, следует проявлять осторожность. Например, сравнение второго параметра командного файла со строкой SSS не следует делать так:

if %2 = = SSS...

Дело в том, что если в командном файле меньше двух параметров, то символы %2 будут замещены пустой строкой, и при выполнении команды возникнет ошибка. Еще опаснее сравнение

If SSS = = %2...

так как в этом случае, если в командном файле меньше двух параметров, возможно выполнение совсем не той команды. Правильное сравнение выглядит так:

if -% 2 = = -SSS...

Оно годится в любом случае.




Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 1301; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.