从批处理文件返回控制

时间:2011-12-16 09:17:58

标签: batch-file dos xcopy

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

XCOPY 
DEL 
RMDIR

anotherBatch.bat

XCOPY 
DEL 
RMDIR

正如你所看到的,在它们之间有一个对另一个批处理文件(anotherBatch.bat)的调用,它会进行一些其他的处理。

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

如何确保控件返回?

2 个答案:

答案 0 :(得分:14)

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

CALL subroutineName Param1 Param2

子程序可以放在调用代码的同一文件中。这在其名称前面用冒号表示:

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

:SubroutineInThisFile
. . .
EXIT /B

:AnotherSubroutine
. . .
EXIT /B

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

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

答案 1 :(得分:7)

您应该明确调用其他批处理文件

call anotherBatch.bat