- •Пакетные файлы
- •Общие правила оформления пакетных файлов
- •Символы условной обработки
- •% (Замещаемый параметр)
- •Содержание лабораторной работы
- •Приложение 1 Применение команд операционной системы
- •Копирование нескольких файлов
- •Команды, используемые в пакетных файлах
- •Примеры
- •Примечания
- •Примеры
- •If [/I] строка1 оп_сравнения строка2 команда [else выражение]
- •If cmdextversion число команда [else выражение]
- •If defined переменная команда [else выражение]
- •Примечания
- •Примеры
- •Примеры
- •Примеры
- •Примечания
- •Примеры
- •Примечания
- •Примеры
Примеры
Следующий пример представляет собой пакетный файл, выводящий сообщение из трех строк на экран с пустыми строками до и после него:
echo off echo. echo Эта пакетная программа echo форматирует и проверяет echo новые диски echo.
Если требуется отключить режим отображения команд и при этом не выводить на экран строку самой команды echo, следует использовать знак @ перед командой, как показано ниже:
@echo off
Оператор if и команда echo могут быть использованы вместе в пакетной программе:
if exist *.rpt echo Отчет получен.
If
Обработка условий в пакетных программах. Если условие, заданное в команде if выполняется, будет выполнена команда, следующая за условием. Если условие не выполняется, Windows 2000 игнорирует команду в предложении if и выполняет команду в предложении else, если оно указано.
Типы условий:
if [not] errorlevel число команда [else выражение]
if [not] строка1==строка2 команда [else выражение]
if [not] exist имя_файла команда [else выражение]
Если расширения командного процессора разрешены:
If [/I] строка1 оп_сравнения строка2 команда [else выражение]
If cmdextversion число команда [else выражение]
If defined переменная команда [else выражение]
-
Параметр
Описание
not
Задает выполнение команды в случае невыполнения условия
errorlevel число
Условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа.
команда
Задает команду, которая будет выполнена, если условие выполняется.
строка1==строка2
Условие выполняется, если строки строка1 и строка2 совпадают. Строки могут являться символьными выражениями или пакетными переменными (например, %1). Символьные строки не требуют кавычек.
exist имя_файла
Условие выполняется, если существует файл с именем имя_файла.
оп_сравнения
один из перечисленных ниже трехбуквенных операторов сравнения:
EQU ‑ равно
NEQ ‑ не равно
LSS ‑ меньше
LEQ ‑ меньше или равно
GTR ‑ больше
GEQ ‑ больше или равно
/i
Если указан ключ /i, сравнение строк производится без учета различия строчных и прописных букв. Ключ /i также может быть использован в форме строка1==строка2 команды if. Эти сравнения являются общими. Если и строка1, и строка2 состоят из цифр, строки преобразовываются в числа и выполняется сравнение чисел.
cmdextversion число
Условие с cmdextversion действует аналогично errorlevel, но производит сравнение с внутренним номером версии расширения командного процессора Cmd.exe. Первая версия имеет номер 1. Номер будет увеличиваться на единицу при внесении существенных дополнений в расширения команд. Условие с cmdextversion не выполняется, если расширения командного процессора запрещены.
defined переменная
Условие с defined действует аналогично exist, но является истинным, когда определена указанная переменная среды. Это условие добавляет три переменные: %errorlevel%, %cmdcmdline% и %cmdextversion%.
выражение
В предложении else выражение состоит из команды Windows 2000 и любых параметров этой команды.
