2011-12-16 135 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 
相關問題