在批处理文件中运行带有参数的 exe 文件

Posted

技术标签:

【中文标题】在批处理文件中运行带有参数的 exe 文件【英文标题】:Run exe file with parameters in a batch file 【发布时间】:2014-05-31 11:58:51 【问题描述】:

请看一下我的批处理文件。

echo off
start "c:\program files\php\php.exe D:\mydocs\mp\index.php param1 param2"

但它不起作用。任何想法如何让它工作?

【问题讨论】:

【参考方案1】:

这应该可行:

start "" "c:\program files\php\php.exe" D:\mydocs\mp\index.php param1 param2

start 命令将第一个参数解释为窗口标题,如果它包含空格。在这种情况下,这意味着start 将您的整个参数视为标题并且看不到任何命令。将 ""(空标题)作为第一个参数传递给 start 可以解决问题。

【讨论】:

好的,很好。我刚试过,它似乎工作。有什么方法可以捕获输出或错误?谢谢 它似乎只是快速闪烁命令面板......我可以保持打开状态以便我可以看到输出吗? 暂停不会让窗口保持打开状态,它只是告诉我在该窗口关闭后按任意键继续。 是的,我忘了你用start打开第二个窗口。 你真的需要start吗?【参考方案2】:

如果您需要查看执行的输出,请将CALLSTART 一起使用或代替START

例子:

CALL "C:\Program Files\Certain Directory\file.exe" -param PAUSE

这将运行 file.exe 并在同一命令窗口中打印输出的任何内容。请记住通话后的PAUSE,否则窗口可能会立即关闭。

【讨论】:

【参考方案3】:

除非这只是问题的简化示例,否则我的建议是删除批处理包装器并直接安排 PHP,更具体地说是 php-win.exe 程序,它不会打开不必要的窗口。

Program: c:\program files\php\php-win.exe
Arguments: D:\mydocs\mp\index.php param1 param2

否则,只需引用 Andrew 指出的内容即可。


在旧版本的 Windows 中,您应该能够将所有内容放在单个“运行”文本框中(只要引用所有有空格的内容):

"c:\program files\php\php-win.exe" D:\mydocs\mp\index.php param1 param2

【讨论】:

实际上我试图创建一个计划任务,但我在上次运行列中不断收到错误 0x1 但如果我在 Cmd 提示符下手动运行与上述相同的命令,它就会运行!这就是为什么我认为它可能会在批处理文件中工作?? 另外,上面是我的批处理文件中的确切代码行(仅添加了 dummy param1 param2) 这不是脚本。这些是您必须在任务计划程序界面中填写的字段。

以上是关于在批处理文件中运行带有参数的 exe 文件的主要内容,如果未能解决你的问题,请参考以下文章

怎么用批处理,调用exe程序执行批量文件然后在保存呀????

如何传递运行时参数以从批处理文件启动 exe

如何在C#中运行下一个批处理文件命令

从带有命令行参数的批处理文件运行控制台应用程序,如何在运行时传递参数值? [复制]

错误:“不被识别为内部或外部命令、可运行程序或批处理文件”

批处理参数换行问题