Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laboratornaya-rabota-1-os.doc
Скачиваний:
4
Добавлен:
11.11.2019
Размер:
192 Кб
Скачать

1.5. Назначение и возможности пакетных файлов

Пакетный файл в Windows представляет собой текстовый файл, содержащий последовательность команд консольного режима (включая команды запуска любых прикладных программ). Стандартное расширение имени для пакетных файлов – .BAT. Пакетные файлы относятся к числу выполняемых файлов, т.е. пользователь может ввести имя пакетного файла в качестве как бы дополнительной команды консольного режима. При этом система начнет последовательно выполнять команды, записанные в этот файл. Таким образом, пакетный файл можно рассматривать как средство для запоминания стандартных последовательностей команд, избавляющее от необходимости многократно выполнять ввод команд с клавиатуры.

Windows позволяет использовать в пакетных файлах ряд дополнительных конструкций (параметры, метки, условные переходы), существенно расширяющих возможности применения этих файлов. В ряде случаев удается путем комбинирования в пакетном файле вызовов существующих программ добиться эффекта, ради которого иначе пришлось бы писать специальную программу. Таким образом, пакетные файлы могут играть роль своеобразного языка программирования, основными конструкциями которого являются вызовы программ и управление порядком этих вызовов.

1.6. Параметры пакетных файлов

В пакетных файлах могут использоваться различные параметры, играющие в «языке пакетных файлов» роль, подобную роли переменных в обычном языке программирования. Следует отметить, что значениями параметров могут быть только текстовые строки.

Позиционные параметры

Позиционные параметры %0%1, ... %9 аналогичны формальным параметрам процедуры. При запуске пакетного файла параметр %0 замещается спецификацией самого запускаемого файла, как она задана в командной строке (т.е. с указанием диска и пути либо без таковых). Остальные параметры в порядке их номеров замещаются параметрами вызова пакетного файла, т.е. остальными частями командной строки с учетом разделителей (пробелов, запятых, точек с запятой и знаков равенства) и за вычетом параметров перенаправления. Последние несколько позиционных параметров могут при этом остаться пустыми. Параметры перенаправления переназначают стандартные ввод и вывод для пакетного файла, сами же из пакетного файла недоступны.

Пример. Пусть имеется команда запуска пакетного файла:

\MYDIR\BATCH1 F1.TXT>PRN,/F=25, DD E/E

При этом стандартный вывод для этой команды будет направлен на PRN, а позиционные параметры примут следующие значения:

%0=\MYDIR\BATCH1  %1=F1.TXT  %2=/F  %3=25  %4=DD  %5=E/E

Использование переменных среды в пакетных файлах

Переменные среды – это имена, использованные в левой части строк среды программы. Внутри пакетного файла можно устанавливать значения этих переменных с помощью обычной команды «SET переменная=значение», можно использовать в командных строках пакетного файла переменные, значение которых либо было установлено ранее в этом же пакетном файле, либо было задано в текущей среде еще до запуска пакетного файла. Чтобы использовать значение переменной среды, следует указать ее имя со знаками «%» справа и слева (%переменная%).

Если продолжить аналогию с процедурами, переменные среды играют для пакетного файла роль глобальных переменных, областью памяти для которых служит текущая среда.

Все переменные среды являются строковыми. Только при использовании расширенной обработки команд в Windows NT появляется возможность использовать арифметические и логические операции над значениями переменных (см. команду SET).

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

При выполнении пакетного файла указанные в его строках имена позиционных параметров и переменных среды заменяются их строковыми значениями (возможно, пустыми), после чего полученная строка выполняется как обычная команда консольного режима.

Пример. Пусть пользователь хочет написать пакетный файл для «мягкого» удаления ненужных файлов. Такой файл должен выполнять перенос указанного файла в специальный каталог, играющий роль «персональной корзины», аналогичной обычной корзине Windows. Пользователь впоследствии может либо вернуть файл в исходный каталог, либо действительно удалить его. Соответствующий файл SOFTDEL.BAT может содержать строки:

COPY %1 %MYDELDIR%

w:st="on"class="af4" style="font-family: 'Courier New'; font-weight: bold; "DEL %1

Пусть пользователь выполнил команды:

SET MYDELDIR=C:\DELETED

SOFTDEL *.OBJ

После подстановки параметров %1 = *.OBJ и %MYDELDIR% = C:\DELETED будут фактически выполнены команды:

COPY *.OBJ C:\DELETED

w:st="on"class="af4" style="font-family: 'Courier New'; font-weight: bold; "DEL *.OBJ

Если используется оболочка типа Norton Commander, то команду SET следовало включить в стартовый файл AUTOEXEC.BAT, выполнив ее до загрузки оболочки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]