
- •Пакетные файлы
- •Общие правила оформления пакетных файлов
- •Символы условной обработки
- •% (Замещаемый параметр)
- •Содержание лабораторной работы
- •Приложение 1 Применение команд операционной системы
- •Копирование нескольких файлов
- •Команды, используемые в пакетных файлах
- •Примеры
- •Примечания
- •Примеры
- •If [/I] строка1 оп_сравнения строка2 команда [else выражение]
- •If cmdextversion число команда [else выражение]
- •If defined переменная команда [else выражение]
- •Примечания
- •Примеры
- •Примеры
- •Примеры
- •Примечания
- •Примеры
- •Примечания
- •Примеры
Примечания
%errorlevel% замещается строковым представлением текущего значения errorlevel, если только уже не существует переменная среды с именем ERRORLEVEL. В этом случае будет использовано ее значение. Приведенный ниже пример иллюстрирует использование errorlevel после запуска программы:
goto answer%erorlevel%
:answer0
echo Код возврата программы равен 0
:answer1
echo Код возврата программы равен 1
Также можно использовать операторы сравнения, перечисленные выше в описании параметра оп_сравнения:
if %errorlevel% LEQ 1 goto okay
%cmdcmdline% замещается исходной командной строкой, переданной в Cmd.exe, до ее обработки в Cmd.exe, если только уже не существует переменная среды с именем cmdcmdline. В этом случае будет использовано ее значение.
%cmdextversion% замещается строковым представлением текущего значения cmdextversion, если только уже не существует переменная среды с именем CMDEXTVERSION. В этом случае будет использовано ее значение.
Примеры
Использование команды if для проверки наличия файла:
if not exist product.dat echo Не найден файл данных
Использование if для выдачи сообщения при возникновении ошибки при форматировании диска A:
:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo Ошибка во время форматирования диска.
:end
echo Конец пакетной программы.
Если ошибки не обнаружены, сообщение об ошибке пропускается.
Использование команды if для проверки наличия каталога
if exist c:mydir\nul goto process
Примечание: Команда if не может быть использована для проверки существования каталога непосредственно, но в каждом каталоге существует устройство (NUL).
Использование предложения else:
Предложение else должно размещаться в той же строке, что и команда if. Например:
IF EXIST filename. (
del filename.
) ELSE (
echo filename. отсутствует.
)
Приведенные ниже примеры не будут работать:
IF EXIST filename. del filename. ELSE echo filename. Отсутствует
IF EXIST filename. del filename.
ELSE echo filename. отсутствует
Если необходимо разместить всю инструкцию в одной строке, можно использовать следующую правильную форму исходной инструкции:
IF EXIST filename. (del filename.) ELSE echo filename. отсутствует
For
Запуск некоторой команды для каждого файла из заданного множества.
Команда for может быть использована в пакетной программе или непосредственно из командной строки.
В пакетных файлах используется следующая форма команды for:
for %%переменная in (множество) do команда [параметры_команды]
Для использования for из командной строки используется следующая форма команды:
for %переменная in (множество) do команда [параметры_команды]
Параметр |
Описание |
%%переменная или %переменная |
Замещаемый параметр. В команде for переменная %%переменная (или %переменная) будет заменяться текстовой строкой из заданного множества, пока команда (с указанными параметрами_команды) не обработает все файлы этого множества. Используйте %%переменная для выполнения команды for в пакетной программе. Используйте %переменная для выполнения команды for из командной строки. Имена переменных вводятся с учетом регистра. |
(множество) |
Задает один или более файлов или текстовых строк, подлежащих обработке заданной командой. Скобки являются обязательными. |
команда |
Задает команду, которая будет выполнена для каждого файла из множества. |
параметры_команды
|
Задает параметры и ключи для вызываемой команды (если команда использует параметры или ключи). Дополнительные формы команды for |