- •«Команды и пакетные файлы в ос Windows»
- •Структура команды
- •Шаблоны имен файлов
- •Список команд и группировка
- •Перенаправление ввода/вывода
- •Конвейеры
- •Переменные среды
- •Некоторые команды консольного режима
- •Просмотр и изменение сопоставлений файлов
- •Вывод и изменение атрибутов файлов
- •Вывод имени либо смена текущего каталога
- •Очистка экрана
- •Запуск новой копии интерпретатора команд Windows
- •Установка цветов для текста и фона в текстовых окнах
- •Сравнение содержимого двух файлов или наборов файлов
- •Копирование одного или нескольких файлов в другое место или с другим именем
- •Вывод или изменение даты
- •Удаление одного или нескольких файлов
- •Вывод списка файлов и подкаталогов из указанного каталога
- •Завершение работы интерпретатора команд
- •Сравнение двух файлов или двух наборов файлов и вывод различий между ними
- •Поиск заданного текста в файлах
- •Просмотр и изменение командных строк, сопоставленных с типом файлов
- •Вывод справочных сведений о командах Windows
- •Создание, изменение и удаление меток тома для дисков
- •Создание каталога
- •Последовательный вывод данных по частям размером в один экран
- •Перемещение одного или нескольких файлов из одного каталога в другой, переименование файлов и папок
- •Вывод или задание пути поиска исполняемых файлов
- •Печать текстового файла
- •Изменение приглашения командной строки
- •Удаление каталога
- •Переименование одного или нескольких файлов.
- •Замена файлов
- •Вывод, задание, удаление и ввод переменных среды
- •Выключение или перезапуск компьютера
- •Сортировка строк стандартного ввода или файла
- •Запуск указанной программы или команды в отдельном окне
- •Сведения о конфигурации операционной системы
- •Завершение процесса по его идентификатору или имени образа
- •Отображение списка процессов
- •Вывод или изменение времени
- •Назначение и возможности пакетных файлов
- •Параметры пакетных файлов
- •Позиционные параметры
- •Модификаторы позиционных параметров
- •Переменные среды в пакетных файлах
- •Параметр errorleveLи переменная %errorlevel%
- •Команды для пакетных файлов
- •Вызов одного пакетного файла из другого
- •Вывод сообщений и переключение режима отображения команд на экране
- •Локализация изменений среды в пакетном файле
- •Циклическое выполнение указанной команды для набора значений
- •Передача управления строке пакетного файла
- •Оператор условного выполнения команд в пакетном файле
- •If условие (команда1
- •Порядок выполнения работы
- •Пример выполнения лабораторной работы
- •Примеры заданий на использование команд в диалоге
- •Список вариантов заданий на разработку пакетных файлов
- •Контрольные вопросы
Параметры пакетных файлов
В пакетных файлах могут использоваться различные параметры, играющие в «языке пакетных файлов» роль, подобную роли переменных в обычном языке программирования. Следует отметить, что значениями параметров могут быть только текстовые строки.
Важной особенностью языка пакетных файлов, отличающей его от обычных языков программирования, является то, что при выполнении пакетного файла происходит подстановка значений параметров прямо в текст выполняемого файла, а не в компилированный код, как в CилиPascal. Например, если значение параметра%1равно строке “OTO” ,а значение параметра%2– строке “5”, то странная на вид команда “G%1 :Label%2” будет перед выполнением преобразована в корректную команду “GOTO :Label5”.
Позиционные параметры
Позиционные параметры %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 до 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).