2011-01-25 296 views

回答

153

使用CALL

CALL nameOfOtherFile.bat 

這將阻止(暫停)當前批處理文件的執行,並且它將一直等待,直到CALL ed完成爲止。

如果您不希望它阻止,請改用START

從cmd提示符處使用​​3210或START /?獲取基本細節。

+1

+一個用於詳細說明CALL/START – 2017-05-10 15:25:08

1

您可以使用

call script.bat 

或只是

script.bat 
+1

如果您在腳本中直接調用另一個腳本,萬一被調用腳本中的任何命令返回非零值(錯誤),被調用腳本也將停止執行,在使用`call`的情況下,它將繼續執行即使在被調用的腳本中有錯誤。 – 2017-10-24 08:27:11

4

您應該使用CALL

CALL batch.bat 
0

這裏是例子:

你有a.bat:

@echo off 
echo "This is b.bat" 
18

你可以只調用批處理腳本:

@echo off 
if exist b.bat goto RUNB 
goto END 
:RUNB 
b.bat 
:END 

和b.bat從a.bat有條件調用按名稱,就好像你在命令行上運行一樣。

因此,假設你有一個文件bar.bat,說echo This is bar.bat!,你想從一個文件foo.bat調用它,你可以在foo.bat這樣寫:命令行

if "%1"=="blah" bar 

運行foo blah,和你」拭目以待:

C:\>foo blah 

C:\>if "blah" == "blah" bar 

C:\>echo This is bar.bat! 
This is bar.bat! 

但要注意:當你調用從另一個批處理腳本批處理腳本,原批離譜pt將停止運行。如果要運行輔助批處理腳本,然後返回到以前的批處理腳本,則必須使用call命令。例如:

if "%1"=="blah" call bar 
echo That's all for foo.bat! 

如果運行上foo blah,你會看到:

C:\>foo blah 

C:\>if "blah" == "blah" call bar 

C:\>echo This is bar.bat! 
This is bar.bat! 

C:\>echo That's all for foo.bat! 
That's all for foo.bat!