从批处理文件返回控制

tes*_*dtv 6 xcopy dos batch-file

我有一个批处理文件,其中包含以下几个命令;

XCOPY 
DEL 
RMDIR

anotherBatch.bat

XCOPY 
DEL 
RMDIR
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在两者之间存在对另一个批处理文件(anotherBatch.bat)的调用,该文件执行其他一些处理.

现在我的问题是在anotherBatch执行之后,控件永远不会返回到原始批处理文件,它就在那里结束.

如何确保控件返回?

Aac*_*ini 14

批量SUBROUTINE是另一个通过CALL命令调用的批处理文件:

CALL subroutineName Param1 Param2
Run Code Online (Sandbox Code Playgroud)

子例程可以放在调用代码的同一文件中.这在前面用冒号表示:

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

:SubroutineInThisFile
. . .
EXIT /B

:AnotherSubroutine
. . .
EXIT /B
Run Code Online (Sandbox Code Playgroud)

EXIT/B命令(不仅仅是EXIT)用于在同一文件中标记子程序结束; 这也必须为主程序完成.

如果在没有CALL命令的情况下调用另一个Batch文件,如在您的示例中,最终结果类似于"GOTO to another file":当调用的文件结束时,该过程在该点结束.我曾经称之为"覆盖"(而不是"子程序")这种方式的批处理文件.


MLN*_*MLN 7

你应该明确地调用另一个批处理文件

call anotherBatch.bat
Run Code Online (Sandbox Code Playgroud)