直接调用与调用vs启动

时间:2014-11-23 09:15:53

标签: windows batch-file cmd

在使用Tivoli Workload Scheduler运行批处理文件时遇到此问题。

有第三方程序,让我们说它的名字是program.exe

批处理文件包含以下命令以调用program.exe

program.exe param1 param2 param3

问题是当program.exe出现警告弹出窗口时批处理文件终止;但我们对警告弹出窗口完全没问题。无论遇到多少警告,我们都希望它能够运行。

我已经对此进行了调查,发现使用' start'可以解决问题。

'调用'行为与直接调用相同。

所以当我们直接调用程序时,默认为?

call program.exe

或直接调用和调用之间是否有任何显着差异?

2 个答案:

答案 0 :(得分:3)

  

直接调用和调用之间有什么显着差异吗?

没有区别:您可以call调用另一个cmd批处理脚本 它还确保您在调用完成后返回当前脚本。

您还可以使用它来调用当前脚本中的函数。

答案 1 :(得分:3)

对于程序而言,它没有区别,但是您获得了不同的参数结果,因为解析器将对参数进行两次评估。

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

第一行按预期工作,但第二行结果为

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

并且它完全失败,因为&无法对CALL进行评估。
通过电话将插入符号加倍。