Call
Вызов одного пакетного файла из другого без завершения выполнения первого файла. Команда call принимает метки в качестве объекта вызова. Используемая в командной строке, а не в сценарии или пакетном файле, команда Call игнорируется.
Синтаксис
call [[диск:][путь] имя_файла [пакетные_параметры]] [ :метка [аргументы]]
Параметры
- [диск:][путь] имя_файла
- Задает имя и местоположение пакетного файла для запуска. Параметр имя_файла должен иметь расширение .bat или .cmd.
- пакетные_параметры
- Задает данные командной строки, используемые программой пакетной обработки, включая параметры командной строки, имена файлов, пакетные параметры (в диапазоне от %0 до %9) или переменные (например %baud%).
- :метка
- Указывает метку, на которую должно быть передано управление программы пакетной обработки. При использовании команды call с этим параметром создается новый контекст пакетного файла, а управление передается инструкции, следующей за указанной меткой. Когда первый раз встречается конец пакетного файла (после перехода на метку), управление возвращается на инструкцию, следующую за инструкцией call.
- аргументы
- Задает данные командной строки, которые передаются в новый экземпляр программы пакетной обработки, начинающейся с :метки, включая параметры командной строки, имена файлов, пакетные параметры (в диапазоне от %1 до %9) или переменные (например %baud%).
- /?
- Отображение справки в командной строке.
Заметки
- Использование пакетных параметров
Пакетные параметры могут содержать любые сведения, которые допускается передавать в программы пакетной обработки, включая параметры командной строки, имена файлов, пакетные параметры (в диапазоне от %0 до %9) или переменные (например %baud%). Для получения дополнительных сведений о пакетных параметрах щелкните ссылку CMD.
- Использование каналов и символов перенаправления
Каналы и символы перенаправления не допускается использовать с командой call.
- Рекурсивный вызов пакетных файлов
Создание пакетных файлов, которые вызывают сами себя, допускается, однако в этом случае необходимо задать условия выхода. В противном случае родительская и дочерняя программы будут вызывать друг друга в бесконечном цикле.
- Работа с расширениями командного процессора
Если расширения командного процессора разрешены (задано по умолчанию), команда call принимает метки в качестве объекта вызова. Правильный синтаксис:
call:аргументы метки
Для получения дополнительных сведений о разрешении и запрещении расширений командного процессора смотрите описание команды cmd.
Примеры
Для вызова программы Checknew.bat из другого пакетного файла в тексте родительского пакетного файла введите следующую строку:
Если родительская пакетная программа принимает два пакетных параметра и требуется передать их в файл Checknew.bat, включите следующую команду в родительскую пакетную программу:
Некоторые вопросы процедур, в том числе область видимости переменных, проблемы с возвратом значений из процедур и особенности использования команды CALL рассмотрены в разделе Примеры, страница Особенности процедур.
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).