【发布时间】:2017-03-04 21:06:14
【问题描述】:
我在 Windows 上使用 PHP 的 exec() 函数运行命令时遇到问题。根据exec() 上 PHP 网站的评论:
在 Windows 中,exec() 发出对“cmd /c your_command”的内部调用。
我的命令如下:
"path\to\program.exe" -flag1 attribute1 -flag2 attribute2 -flag3 "attribute3 attribute4"
在我的本地命令提示符下定期执行此命令,没有 /c 标志,命令运行正常。然而,随着 /c 标志的引入,命令提示符告诉我“系统找不到指定的路径。”
我认为命令提示符将双引号参数解释为另一个文件的路径,但这是我在这个问题上得到的最远距离。
有人对如何克服这个问题有任何想法吗?谢谢!
【问题讨论】:
-
经过多次尝试,这适用于我在 PHP 5.3.8 上:
exec('"c:\Program Files (x86)\wget.exe" -c "http://localhost/tmp/test 1.php"');,您的示例可能应该是:exec('"path\to\program.exe" -flag1 attribute1 -flag2 attribute2 -flag3 "attribute3 attribute4"'); -
那个命令对我也不起作用......我不知道为什么。 :/ 不过我找到了一个非常临时的解决方案,稍后我会发布。
标签: php command-line-arguments