Развитые командные файлы.
Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов, К ним, как указывалось, относятся команды GOTO, IF, FOR, SHIFT, а также команда EXIT, играющая особую роль при рекурсивном (вложенном) вызове командных файлов.
Команда GOTO.
Позволяет передавать управление на метку и тем самым осуществлять повторное исполнение участков командного файла или, наоборот, обходить некоторые участки (что обычно имеет смысл в сочетании с командой ветвления IF).
Пример 1.
Пусть командный файл С.ВАТ имеет вид;
echo off
:ml
echo Вывод на принтер файла % 1
echo Для остановки нажмите CtrlC
сору % 1 рrn
pause
goto ml
В данном примере вторая строка содержит метку ml (признаком метки является двоеточие в начале строчки), а последняя строка — команду перехода на эту метку. Четыре команды внутри повторяемого участка командного файла служат для выдачи на экран поясняющих сообщений (команды ECHO) и копирования на принтер (т. е. печати) файла, имя которого подставляется вместо формального параметра % 1.
Команда PAUSE приостанавливает исполнение, чтобы пользователь имел возможность осмотреться и либо прервать работу, либо продолжить ее дальше.
Допустим, пользователь дает с терминала команду:
с spectr. doc
Тогда начинается циклическое выполнение файла С. ВАТ с фактическим параметром SPECTR.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать выполнение этого командного файла, нажав одновременно клавиши Ctrl и С.
Команда IF.
Позволяет проверять условие и выполнять команду в зависимости от результата его проверки. Что можно задавать в качестве условия? Для этого имеется три возможности:
1. Проверка кода завершения какой-либо программы, сработавшей перед оператором IF. При этом в начале оператора IF используется конструкция следующего вида:
IF ERRORLEVEL
Любая программа может с помощью специального прерывания ДОС выработать в момент своего окончания - так называемый код завершения. Этот код сравнивается с числом N. Условие считается выполненным (истинным), если выработанный код завершения равен или больше указанного числа N.
2. Проверка наличия файла в каталоге. В этом случае начало оператора IF имеет вид:
IF EXIST (имя файла или шаблон)
В данном случае команда IF проверяет, действительно ли существует файл с заданным именем в указанном или в текущем каталоге. При обнаружении файла условие считается выполненным.
3. Сравнение двух строк, которые, в частности, могут задаваться через формальные параметры. Соответствующая конструкция может иметь вид:
IF%(N)== (текстовая строка)
Здесь значение формального параметра % (N) сопоставляется с конкретной строкой. При абсолютном совпадении двух строк условие считается выполненным.
Любое из этих условий может задаваться со знаком логического отрицания NOT; отрицание условия считается выполненным, если само условие не выполнено (ложно).
Достарыңызбен бөлісу: |