1.4. Пакетные командные файлы (пкф) в системе ms-dos
Пакетные командные файлы используются в операционных системах (ОС) для того, чтобы иметь возможность задавать последовательность команд ОС, управлять запуском задач, создавать разные варианты рабочей среды.
ПКФ в системе MS-DOS являются текстовыми файлами в коде ASCII, которые содержат последовательности команд ОС. Они должны иметь расширение .ВАТ и иметь имя не более восьми символов. При этом, в текущем каталоге не должно быть одноименных файлов с расширением .СОМ или .ЕХЕ.
В ОС MS-DOS специально для ПКФ предусмотрено восемь команд и специальный символ @ (Табл.5).
Данные команды являются внутренними командами ОС, размещаются в командном процессоре и доступны из любого каталога.
Табл. 5
Команда |
Назначение |
@ |
Не выводит на экран дисплея строку которая следует за ним. |
CALL |
Осуществляет выполнение одного пакета команд внутри другого пакета. |
CLS |
Очистка экрана |
ECHO OFF |
Запрещает вывод на экран командных строк. |
ECHO ON |
Разрешает вывод на экран командных строк. |
ECHO <текст> |
Вывод на экран текстовой информации (при действии команды ECHO OFF). |
FOR |
Задание цикла. |
GOTO <метка> |
Передача управления на указанную метку. |
IF |
Условное выполнение команды. |
PAUSE |
Прерывает выполнение программы. |
REM |
Выводит текст на экран дисплея. |
SHIFT |
Cдвиг влево параметров команды. |
Для запуска ПКФ вводится его имя без расширения. В случае, если ПКФ находится не в текущем каталоге , путь доступа к ПКФ должен быть определен командой РАТН. Если в какой-либо из команд пакета была допущена ошибка , то выполнение пакета прекращается и на экран выводится сообщение об ошибке.
Можно прервать выполнение пакета нажатием Ctrl-C. В этом случае выводится сообщение:
Terminate batch job (Y/N)?
(Завершить работу командного файла (Да/Нет)?
ПКФ можно сформировать с помощью любого текстового редактора или других программ позволяющих создавать файлы в коде ASCII.
1.5. Действие команд в командных файлах
Рассмотрим более подробно некоторые команды в ПКФ.
Команда PAUSE. Данная команда прерывает выполнение пакета с автоматическим выводом текста "Strike a key when ready ...". Если нужно вывести текст на русском языке , то перед командой PAUSE можно ввести ECHO с текстом "Нажмите любую клавишу".
Команда GOTO. После имени этой команды сообщается метка командной строки , в которую производится переход. Если перед строкой указано двоеточие , то это означает что за ним следует метка , а не команда. Между двоеточием и именем пробел не ставится , между именем и командой GOTO оставляют пробел. Длина метки ограничивается 8 символами.
Например: GOTO EXIT
.
.
:EXIT
Команда IF. Эта команда имеет следующий формат:
IF <условие><команда>.
Переменная <условие> может иметь один из четырех форматов:
1. <набор_символов_1>==<набор_символов_2>.
Условие выполняется, если <набор_символов_1> и <набор_символов_2> являются идентичными после замещения параметров.
2. ERRORLEVEL <номер>.
Условие выполняется, если для последней команды, которую выполнила ОС, код завершения равен или больше значения <номер>.
3. EXIST <имя_файла>.
Условие выполняется, если существует файл с указанным именем.
4. NOT <условие>.
Условие выполняется, если не выполняется заданное условие.
Команда SHIFT. Формат команды прост: SHIFT. В ПКФ можно использовать до десятка параметров, с помощью данной команды это количество можно увеличить. Команда SHIFT присваивает новые значения параметрам %0 - %9. При этом параметру %0 присваивается старое значение %1 ,%1 - старое значение %2 и т.д. %9 присваивается значение, следующее за старым значением %9 в командной строке.
Команда FOR. Имеет следующий формат:
FOR %%N IN(группа) DO команда %%N,
где N - однобуквенная переменная, последовательно принимающая значения, входящие в параметр (группа); (группа) - имя файла или имена файлов, вместе с именем файла могут указываться дисковод и возможный путь доступа; команда - команда ОС MS-DOS.
Команда CALL. Формат команды:
CALL [<дисковод:>][<путь_доступа>]<командный_файл>
<параметры>,
где <дисковод:> - дисковод диск которого содержит командный файл; <путь_доступа> - путь доступа к данному ПКФ ; <командный файл> - имя ПКФ без расширения.