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