2010-05-13 192 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...