
- •Пакетные файлы
- •Общие правила оформления пакетных файлов
- •Символы условной обработки
- •% (Замещаемый параметр)
- •Содержание лабораторной работы
- •Приложение 1 Применение команд операционной системы
- •Копирование нескольких файлов
- •Команды, используемые в пакетных файлах
- •Примеры
- •Примечания
- •Примеры
- •If [/I] строка1 оп_сравнения строка2 команда [else выражение]
- •If cmdextversion число команда [else выражение]
- •If defined переменная команда [else выражение]
- •Примечания
- •Примеры
- •Примеры
- •Примеры
- •Примечания
- •Примеры
- •Примечания
- •Примеры
Команды, используемые в пакетных файлах
Call
Вызов одного пакетного файла из другого без завершения выполнения первого файла. Команда call теперь принимает метки в качестве объекта вызова.
call [диск:][путь] имя_файла [пакетные_параметры]
call :метка [аргументы]
-
Параметр
Описание
[диск:][путь] имя_файла
Задает имя и местоположение пакетного файла для запуска. Параметр имя_файла должен иметь расширение .bat или .cmd.
пакетные_параметры
Задает параметры командной строки пакетного файла. Ниже в описании параметра аргументы указаны расширения для пакетных_параметров
метка
Указывает метку, на которую должно быть передано управление пакетной программы.
При использовании команды call с этим параметром создается новый контекст пакетного файла, а управление передается инструкции, следующей за указанной меткой. Когда первый раз встречается конец пакетного файла (после перехода на метку), управление возвращается на инструкцию, следующую за инструкцией CALL. При втором достижении конца файла выполнение пакетной программы прекращается. Для получения описания расширения goto :eof, которое позволяет возвращать управление из пакетной программы, смотрите описание команды goto.
Примеры
Для вызова программы Checknew.bat из другого пакетного файла в текст родительского пакетного файла должна быть включена следующая строка:
call checknew
Предположим, что родительская пакетная программа получает два параметра и должна передавать их вызываемому пакетному файлу Checknew.bat. Для этого в родительском пакетном файле может быть использована следующая строка:
call checknew %1 %2
Goto
Передача управления в пакетной программе на строку с указанной меткой.
Команда goto передает управление в пакетном файле Windows 2000 на строку, помеченную указанной меткой. Когда Windows 2000 находит метку, выполнение продолжается со следующей за ней строки.
goto метка
goto :EOF
Метка задает строку в пакетной программе, к которой выполняется переход.
Использование команды goto с меткой перехода :EOF передает управление в конец текущего файла пакетной программы, выходя из файла пакетной программы без определения метки.
Пример
Следующая пакетная программа форматирует диск в дисководе A как системный диск. Если форматирование прошло успешно, команда goto вызывает передачу управления на метку "end".
echo off
format a: /s
if not errorlevel 1 goto end
echo Ошибка во время форматирования диска.
:end
echo Конец пакетной программы.
Примечания
Метка может включать пробелы, но не может включать другие разделители, такие как точка с запятой или знак равенства. Если используется команда goto с меткой EOF, перед меткой должно быть вставлено двоеточие, например:
goto :EOF
В команде goto используются только первые восемь символов имени метки. Следовательно, метки ":hithere01" и ":hithere02" эквивалентны метке ":hithere0".
Совпадение меток в пакетных программах
Метка, заданная в команде goto, должна соответствовать метке в тексте пакетной программы. Метка в пакетной программе должна начинаться с двоеточия.
Если в пакетном файле не содержится заданной метки, программа будет остановлена и на экран будет выведено следующее сообщение:
Метка не найдена.
Строки пакетной программы, начинающиеся с двоеточия (:) считаются метками. Они не будут обрабатываться как команды. Если строка начинается с двоеточия, Windows 2000 игнорирует все команды в этой строке.
Echo
Вывод на экран сообщения или задание режима вывода на экран сообщений команд.
echo [on | off] [сообщение]
Параметр |
Описание |
on | off
|
Включение или отключения режима отображения на экране информации о работе команд. Для вывода текущего режима используется команда echo без параметров. |
сообщение |
Задает текст для вывода на экран |