Возврат управления из пакетного файла

У меня есть пакетный файл, который имеет несколько команд следующим образом:

XCOPY 
DEL 
RMDIR

anotherBatch.bat

XCOPY 
DEL 
RMDIR

Как вы можете видеть, между ними происходит вызов другого пакетного файла (anotherBatch.bat), который выполняет некоторую другую обработку.

теперь мой вопрос после выполнения anotherBatch, элемент управления никогда не возвращается в исходный пакетный файл, и он просто заканчивается там.

Как убедиться, что элемент управления возвращается обратно ?

2 ответов


Пакета подпрограмма другой пакетный файл, вызываемый с помощью команды вызова:

CALL subroutineName Param1 Param2

подпрограмма может быть помещена в тот же файл вызывающего кода. На это указывает предшествующее его название двоеточием:

CALL :SubroutineInThisFile Param1 Param2
. . . .
. . . .
. . . .
EXIT /B

:SubroutineInThisFile
. . .
EXIT /B

:AnotherSubroutine
. . .
EXIT /B

команда EXIT /B (не только EXIT) используется для обозначения конца подпрограммы в том же файле; это также должно быть сделано для основной программы.

Если другой пакетный файл вызывается без команды вызова, как в вашем примере, сеть результат похож на" перейти к другому файлу": когда вызываемый файл заканчивается, процесс заканчивается в этот момент. Я использовал для вызова " Overlay "(вместо" подпрограммы") пакетный файл, называемый таким образом.


вы должны явно вызвать другой командный файл

call anotherBatch.bat