我想要做的就是发送:
run_app.exe -param 'test' -name 'tester'
从PHP CMD线一个窗口。
这是可能的还是我需要编写一个Windows应用程序以某种方式触发应用程序?
我想要做的就是发送:
run_app.exe -param 'test' -name 'tester'
从PHP CMD线一个窗口。
这是可能的还是我需要编写一个Windows应用程序以某种方式触发应用程序?
您可以使用exec()。
你试过exec
?
我建议使用标准的PHP system
命令。 official PHP site中有大量信息和示例。
对于exec()
,system()
和passthru()
之间的差异,有一个回答question on SO。
或者你可以使用:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]);
在这里你可以找到的run方法PARAMS: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]参数,我不能使用任何其他方法。
这是一个项目,它允许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()方法逐个发布它们,这样您还可以处理返回和任何异常。