2014-11-23 68 views
3

我在使用Tivoli Workload Scheduler運行批處理文件時遇到此問題。直接調用vs調用vs啓動

有一個第三方程序,讓我們說,它的名字是的Program.exe

批處理文件包含以下命令來調用的Program.exe

program.exe param1 param2 param3 

問題是批處理文件結束時,有從program.exe警告彈出窗口;但我們完全符合警告彈出窗口。無論遇到多少警告,我們都希望它運行。

我仔細研究過,發現使用'start'可以解決問題。

「調用」的行爲與直接調用的行爲相同。

所以當我們直接調用程序時,它是否默認爲?

call program.exe 

或者在直接調用和調用之間是否有任何顯着差異?

回答

2

直接調用和調用之間是否有任何顯着差異?

沒有區別:你會call調用另一個CMD批處理腳本
它還確保您在完成調用後返回到當前腳本。

您也可以用它來調用當前腳本中的函數。

+0

好吧,太棒了:)現在我將切換到使用開始執行program.exe,它將繼續運行,無論警告彈出窗口,並使用findstr來監視程序的進度。 – HaseebR7 2014-11-23 09:23:33

3

對於程序是不是有差別,但大家的參數得到了不同的結果,因爲這些參數將被解析器評估兩次。

program Program^&Documents "One caret^" 
call program.exe Program^&Documents "One caret^" 

第一線工作正常,但第二個成果轉化

program.exe Program 
&Documents "One caret ^^ " 

而且它完全地失敗,因爲&不能在CALL來avaluated。
通過呼叫,插入符號翻倍。