- •Консольный режим и пакетные файлы в ос 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. Пример выполнения лабораторной работы
Параметр errorlevel
Любая программа для Windows при завершении своего выполнения передает операционной системе целочисленной значение, которое называется кодом завершения программы. По умолчанию код завершения равен 0, и это значение принято считать признаком нормального завершения, т.е. отсутствия каких-либо «нештатных ситуаций» при работе программы. Пользователь может предусмотреть выдачу любых значений кода завершения, при этом ненулевые коды завершения обычно означают, что в ходе работы программы произошли какие-то неприятности (например, не найден входной файл, неверный формат обрабатываемых данных и т.п.).
Если программа была запущена в диалоговом режиме, то значение кода ее завершения никак не используется, теряется. Если же программа запускалась из пакетного файла, то можно проверить значение кода завершения при помощи оператора IF ERRORLEVEL, формат которого описан ниже. Такая проверка позволяет разветвить ход дальнейшего выполнения пакетного файла в зависимости от кода завершения программы.
Оригинальное и очень полезное применение кода завершения связано с использованием команды CHOICE. Программа, вызываемая по этой команде, задает пользователю некоторый вопрос и предлагает на выбор нажать одну из нескольких клавиш в качестве ответа. После нажатия клавиши программа завершается, а код ее завершения указывает, какой из предложенных ответов был выбран пользователем. Таким образом достигается возможность выбрать один из нескольких путей дальнейшего выполнения пакетного файла по выбору пользователя.
1.7. Команды для пакетных файлов
В данном подразделе описаны команды консольного режима, которые обычно применяются только в составе пакетных файлов. Их использование в диалоге не запрещено, но, как правило, не имеет смысла.
Вызов одного пакетного файла из другого
CALL [диск:][путь]имя_файла [параметры]
параметры - Набор параметров командной строки, необходимых пакетному файлу.
Изменение команды CALL при включении расширенной обработки команд:
Команда CALL допускает использование меток в качестве адресата вызова.
Применяется следующий синтаксис:
CALL :метка аргументы
При вызове создается новый контекст текущего пакетного файла с заданными аргументами, и управление передается на инструкцию, расположенную сразу после метки. Для выхода из такого пакетного файла необходимо два раза достичь его конца. Первый выход возвращает управление на инструкцию, расположенную сразу после строки CALL, а второй выход завершает выполнение пакетного файла.
Команда GOTO /? выводит описание расширения GOTO :EOF, позволяющее выполнить быстрый возврат из пакетного файла.
Кроме того, раскрытие ссылок на аргументы пакетных файлов (%0, %1 и т.д.) изменено следующим образом: %* в пакетном файле обозначает все аргументы (например, %1 %2 %3 %4 %5 ).
Операции подстановки параметров пакетного файла (%n) также расширены.
Допускается применение следующих синтаксических конструкций:
%~f1 |
переменная %1 расширяется до полного имени файла |
%~d1 |
из переменной %1 выделяется только имя диска |
%~p1 |
из переменной %1 выделяется только путь к файлу |
%~n1 |
из переменной %1 выделяется только имя файла |
%~x1 |
из переменной %1 выделяется расширение имени файла |
%~s1 |
значение параметров n и x изменяется так, что они работают с кратким именем файла |
%~$PATH:1 |
проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %1 заменяется на полное имя первого найденного файла. Если переменная PATH не определена или в результате поиска не найден ни один файл, эта конструкция заменяется на пустую строку |