我有一个批处理文件,其中包含以下几个命令;
XCOPY
DEL
RMDIR
anotherBatch.bat
XCOPY
DEL
RMDIR
如您所见,在两者之间调用了另一个批处理文件(anotherBatch.bat),该文件执行一些其他处理。
现在我的问题是在 anotherBatch 执行之后,控件永远不会返回到原始批处理文件,它只是在那里结束。
如何确保控件返回?
我有一个批处理文件,其中包含以下几个命令;
XCOPY
DEL
RMDIR
anotherBatch.bat
XCOPY
DEL
RMDIR
如您所见,在两者之间调用了另一个批处理文件(anotherBatch.bat),该文件执行一些其他处理。
现在我的问题是在 anotherBatch 执行之后,控件永远不会返回到原始批处理文件,它只是在那里结束。
如何确保控件返回?
Batch SUBROUTINE是另一个通过 CALL 命令调用的批处理文件:
CALL subroutineName Param1 Param2
子程序可以放在调用代码的同一个文件中。这通过在其名称前加上冒号来表示:
CALL :SubroutineInThisFile Param1 Param2
. . . .
. . . .
. . . .
EXIT /B
:SubroutineInThisFile
. . .
EXIT /B
:AnotherSubroutine
. . .
EXIT /B
EXIT /B 命令(不仅仅是EXIT)用于在同一个文件中标记子程序结束;这也必须对主程序进行。
如果在没有 CALL 命令的情况下调用另一个批处理文件,如在您的示例中,则最终结果类似于“转到另一个文件”:当调用的文件结束时,该过程在该点结束。我曾经用这种方式调用“覆盖”(而不是“子例程”)一个批处理文件。
您应该显式调用另一个批处理文件
call anotherBatch.bat