这可能吗?
我想做的是发送:
run_app.exe -param 'test' -name 'tester'
到PHP的Windows cmd行。
这是可能的还是我需要编写一个以某种方式由应用程序触发的Windows服务?
答案 0 :(得分:1)
您是否尝试过exec
?
答案 1 :(得分:1)
您可以使用exec()。
答案 2 :(得分:1)
我建议使用标准的PHP system
命令。 official PHP site中有大量信息和示例。
exec()
,system()
和passthru()
之间的差异已得到解答question on SO。
答案 3 :(得分:0)
或者您可以使用:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]);
在这里你可以找到run方法参数:http://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.85%29.aspx
这是COM类文档:http://www.php.net/manual/en/class.com.php
使用此方法,您可以在Windows中执行更多操作:)。 我使用它是因为[bWaitOnReturn]参数,我无法使用任何其他方法。
答案 4 :(得分:0)
这是一个允许PHP获取动态与真实cmd终端进行交互的项目。在此处获取:https://github.com/merlinthemagic/MTS
下载后,您只需使用以下代码:
//if you prefer Powershell, replace 'cmd' with 'powershell'
$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('cmd');
$strCmd1 = 'run_app.exe -param "test" -name "tester"';
$return1 = $shellObj->exeCmd($strCmd1);
返回将为您提供命令返回或来自cmd的错误,就像您坐在控制台一样。此外,您可以针对$ shellObj发出任何您喜欢的命令,在PHP脚本的整个生命周期中都会维护该环境。因此,不是在脚本文件中捆绑命令,而是使用exeCmd()方法逐个发出命令,这样您也可以处理返回和任何异常。