Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вызывает одну пакетную программу из другой без остановки родительской пакетной программы. Команда call принимает метки в качестве цели вызова.
Note
Вызов не действует в командной строке, если он используется за пределами скрипта или пакетного файла.
Syntax
call [drive:][path]<filename> [<batchparameters>]]
call [:<label> [<arguments>]]
Parameters
| Parameter | Description |
|---|---|
[<drive>:][<path>]<filename> |
Указывает расположение и имя пакетной программы, которую требуется вызвать. Параметр <filename> является обязательным, и он должен иметь расширение .bat или .cmd. |
<batchparameters> |
Указывает все сведения командной строки, необходимые пакетной программе. |
:<label> |
Указывает метку, к которой требуется перейти элемент управления пакетной программы. |
<arguments> |
Указывает сведения командной строки, передаваемые новому экземпляру пакетной программы, начиная с :<label>. |
| /? | Отображает справку в командной строке. |
Batch parameters
Ссылки на аргументы пакетного скрипта (%0, %1, ...) перечислены в следующих таблицах.
Использование %* значения в пакетном скрипте относится ко всем аргументам (например, %1, %2, %3...).
Вы можете использовать следующие необязательные синтаксисы в качестве подстановок для параметров пакета (%n):
| Batch Parameter | Description |
|---|---|
| %~1 | Разворачивает %1 и удаляет окружающие кавычки. |
| %~f1 | Расширяет %1 до полностью квалифицированного пути. |
| %~d1 | Разворачивает %1 только до буквы диска. |
| %~p1 | Разворачивает %1 только до контура. |
| %~n1 | Разворачивает %1 только до имени файла. |
| %~x1 | Разворачивает %1 только до расширения имени файла. |
| %~s1 | Разворачивает %1 до полного полного пути, содержащего только короткие имена. |
| %~a1 | Разворачивает %1 к атрибутам файла. |
| %~t1 | Разворачивает %1 до даты и времени файла. |
| %~z1 | Разворачивает %1 до размера файла. |
| %~$PATH:1 | Выполняет поиск в каталогах, перечисленных в переменной среды PATH, и разворачивает %1 до полного имени первого найденного каталога. Если имя переменной среды не определено или файл не найден поиском, этот модификатор расширяется до пустой строки. |
В следующей таблице показано, как объединить модификаторы с параметрами пакетной службы для составных результатов:
| Параметр пакетной службы с модификатором | Description |
|---|---|
| %~dp1 | Разворачивает %1 только до буквы диска и пути. |
| %~nx1 | Разворачивает %1 только до имени и расширения файла. |
| %~dp$PATH:1 | Выполняет поиск %1в каталогах, перечисленных в переменной окружения PATH, а затем разворачивается до буквы диска и пути к первому найденному каталогу. |
| %~ftza1 | Разворачивает %1 для отображения вывода, аналогичного команде dir . |
В приведенных выше примерах %1 и PATH могут быть заменены другими допустимыми значениями. Синтаксис %~ завершается допустимым номером аргумента. %~ Модификаторы нельзя использовать с %*.
Remarks
Использование параметров пакетной службы:
Параметры пакета могут содержать любую информацию, которую можно передать программе пакетной службы, включая параметры командной строки, имена файлов, параметры пакета %0%9 и переменные (например , %baud%).
<label>Использование параметра:Используя call с параметром
<label>, вы создаете новый контекст пакетного файла и передаете управление оператору после указанной метки. При первом столкновении с окончанием пакетного файла (то есть после перехода к метке) управление возвращается к оператору после оператора call . Во второй раз, когда происходит завершение пакетного файла, пакетный скрипт завершается.Использование каналов и символов перенаправления:
Не используйте каналы
(|)или символы перенаправления (<или>) при вызове.Выполнение рекурсивного вызова
Вы можете создать пакетную программу, которая вызывает себя. Однако необходимо предоставить условие выхода. В противном случае родительские и дочерние пакетные программы могут циклически циклически.
Работа с расширениями команд
Если расширения команд включены, вызов принимается
<label>в качестве цели вызова. Правильный синтаксис.call :<label> <arguments>
Examples
Чтобы запустить программу checknew.bat из другой пакетной программы, введите следующую команду в родительской пакетной программе:
call checknew
Если родительская пакетная программа принимает два параметра пакета и вы хотите передать эти параметры в checknew.bat, введите следующую команду в родительской программе пакетной службы:
call checknew %1 %2