2014-11-23 69 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。
通过呼叫,插入符号翻倍。