2010-05-13 204 views
0

我已經制作了一個用於備份存儲庫更改和rebuildig的簡單批處理文件,但在運行備份命令後它總是停止執行。有沒有人曾經見過這種情況發生過?批處理文件未完全執行

+0

閱讀'通話'? – bmargulies 2010-05-13 00:54:54

+0

@bma:在某些情況下,什麼是正常可執行文件和什麼是批處理文件並不特別明顯。有些程序(例如ant)堅持通過批處理文件默認調用,如果你不知道這可能是相當混亂的。 – Joey 2010-05-13 01:38:24

回答

3

具體而言,如果從批處理中運行另一個批處理文件,則必須使用CALL,否則批處理將在該時刻停止執行。 (控制權被轉移到第二個批處理文件,並且從不返回。)

運行exe文件和類似的東西可以 - 它們會自動返回。

+0

謝謝!我剛剛發現了這個,我將在這裏發佈。 – Vicente 2010-05-13 01:44:40

0

在你的第二個批處理文件把GOTO:EOF的最後一行,而不是退出

第一個文件:

ECHO. FIRST FILE 
CALL file2.bat 
ECHO. FIRST FILE AGAIN! 
PAUSE 

文件2:

ECHO. SECOND FILE 
:: your stuff here 
GOTO:EOF 

將顯示(結果是縮進使其更容易閱讀:

C:\Windows\System32> ECHO. FIRST FILE 
     First File 
C:\Windows\System32> CALL file2.bat 
C:\Windows\System32> ECHO. SECOND FILE 
     Second File 
C:\Windows\System32> GOTO:EOF 
C:\Windows\System32> ECHO. FIRST FILE AGAIN! 
     First file again! 
C:\Windows\System32> PAUSE 
     Press any key to continue...