- •Консольный режим и пакетные файлы в ос Windows
- •1. Основные сведения
- •1.1. Консольный режим Windows
- •1.2. Структура команды
- •1.3. Переменные среды
- •1.4. Некоторые команды консольного режима
- •Просмотр и изменение сопоставлений файлов.
- •Вывод и изменение атрибутов файлов
- •Вывод имени либо смена текущего каталога
- •Очистка экрана.
- •Запуск новой копии интерпретатора команд
- •Сравнение содержимого двух файлов или наборов файлов.
- •Копирование одного или нескольких файлов в другое место
- •Вывод или изменение даты
- •Удаление одного или нескольких файлов
- •Вывод списка файлов и подкаталогов из указанного каталога
- •Копирование содержимого одного гибкого диска на другой
- •Редактирование и повторный вызов команд Windows; создание макросов dosKey
- •Вывод сообщений и переключение режима отображения команд на экране
- •Завершение работы интерпретатора команд
- •Сравнение двух файлов или двух наборов файлов и вывод различий между ними
- •Поиск текстовой строки в одном или нескольких файлах
- •Поиск строк в файлах. (только для Windows nt)
- •Форматирование диска для работы с Windows
- •Просмотр и изменение типов файлов, сопоставленных с расширением имен файлов
- •Удаление каталога
- •Переименование одного или нескольких файлов
- •Замена файлов. (только для Windows nt)
- •Вывод, задание и удаление переменных среды
- •Сортировка ввода с выводом результатов
- •Запуск указанной программы или команды в отдельном окне
- •Сопоставление имени диска указанному пути
- •Вывод или изменение времени
- •Вывод версии Windows
- •Вывод метки и серийного номера тома для диска
- •Копирование файлов и структур каталогов
- •1.5. Назначение и возможности пакетных файлов
- •1.6. Параметры пакетных файлов
- •Позиционные параметры
- •Использование переменных среды в пакетных файлах
- •Параметр errorlevel
- •1.7. Команды для пакетных файлов
- •Вызов одного пакетного файла из другого
- •Ввод ответа пользователя с клавиатуры
- •Вывод сообщений и переключение режима отображения команд на экране
- •Выполнение указанной команды для каждого файла набора
- •Передача управления содержащей метку строке пакетного файла
- •Оператор условного выполнения команд в пакетном файле
- •Приостановка выполнения пакетного файла и вывод сообщения: «Для продолжения нажмите любую клавишу . . .»
- •Помещение комментариев в пакетные файлы
- •Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла
- •1.8. Порядок выполнения работы
- •1.9. Пример выполнения лабораторной работы
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, выполнив ее до загрузки оболочки.