Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС лабы / ОС - Лабораторная работа 2.doc
Скачиваний:
83
Добавлен:
01.06.2015
Размер:
524.8 Кб
Скачать
    1. Параметры пакетных файлов

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

Важной особенностью языка пакетных файлов, отличающей его от обычных языков программирования, является то, что при выполнении пакетного файла происходит подстановка значений параметров прямо в текст выполняемого файла, а не в компилированный код, как в CилиPascal. Например, если значение параметра%1равно строке “OTO” ,а значение параметра%2– строке “5”, то странная на вид команда “G%1 :Label%2” будет перед выполнением преобразована в корректную команду “GOTO :Label5”.

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

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

Параметр %*замещается всей командной строкой за вычетом%0, т.е. всеми позиционными параметрами, начиная с%1.

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

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

\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 %6 = "Мои документы"

%* = F1.TXT,/F=25, DD E/E "Мои документы"

      1. Модификаторы позиционных параметров

В тех случаях, когда позиционным параметров является имя файла (возможно, содержащее также путь), язык пакетных файлов позволяет выделить такие части параметра, как имя диска, путь, имя файла, а также каталожную информацию о файле. Для этого между символом “%” и номером параметра вставляется модификатор, начинающийся с символа “~”.

Пусть, например, значением позиционного параметра %1(номер может быть любым от 1 до 9) является строка “Лабораторная работа 2.doc”, причем соответствующий файл находится на дискеC:, в папке «Мои документы». В таблице ниже показаны значения, соответствующие некоторым модификаторам.

Параметр

Смысл модификации

Значение модификации

%1

Значение параметра

"Лабораторная работа 2.doc"

%~1

Значение с удалением всех кавычек

Лабораторная работа 2.doc

%~f1

Полный путь к файлу

C:\Мои документы\Лабораторная работа 2.doc

%~d1

Диск

C:

%~p1

Полный путь к папке

C:\Мои документы\

%~n1

Имя файла

Лабораторная работа 2

%~x1

Расширение имени

.doc

%~a1

Атрибуты файла

--a------

%~t1

Дата и время модификации

22.02.2013 22:34

%~z1

Размер файла

439808

Модификаторы можно комбинировать. Например, “%nx1” означает имя и расширение файла.

Модификаторы можно также использовать с переменными цикла (см. п.2.7.4).