2011-12-16 136 views
6

我有一个批处理文件,其中有几个命令如下;从批处理文件返回控制

XCOPY 
DEL 
RMDIR 

anotherBatch.bat 

XCOPY 
DEL 
RMDIR 

正如你所看到的,在两者之间还有另一个批处理文件(anotherBatch.bat),做一些其他处理的呼叫。

现在我的问题是在另一个批处理被执行之后,控件永远不会返回到原来的批处理文件,它只是在那里结束。

如何确保控件返回?

回答

13

一个批次子程序是通过CALL命令调用另一个批处理文件:

CALL subroutineName Param1 Param2 

子程序可以被放置在同一个文件调用代码。这是通过其名称与结肠癌前述指示:

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

:SubroutineInThisFile 
. . . 
EXIT /B 

:AnotherSubroutine 
. . . 
EXIT /B 

的EXIT/B命令(不只是EXIT)被用来标记在同一个文件子例程结束;这也必须为主程序完成。

如果在您的示例中调用另一个没有CALL命令的批处理文件,则最终结果与“GOTO到另一个文件”类似:当被调用的文件结束时,该过程在该点结束。我过去称为“叠加”(而不是“子程序”)称为这种方式的批处理文件。

+1

+1很好解释 – 2011-12-16 11:38:32

7

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

call anotherBatch.bat 
相关问题