[英]Sending commands to windows command line (cmd) from PHP
这可能吗?
我想做的是发送:
run_app.exe -param 'test' -name 'tester'
从PHP到Windows cmd行。
这是可能的还是我需要编写由应用程序触发的Windows服务?
您尝试过exec
吗?
您可以为此使用exec() 。
这是一个允许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);
return将为您提供来自cmd的命令return OR error,就像您坐在控制台上一样。 此外,您可以针对$ shellObj发出任何您喜欢的命令,该环境在PHP脚本的整个生命周期中都得到维护。 因此,与其将命令捆绑在脚本文件中,不如使用exeCmd()方法一个接一个地发出它们,这样您就可以处理return和任何异常。
或者您可以使用:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]);
在这里您可以找到运行方法的参数: http : //msdn.microsoft.com/zh-cn/library/d5fk67ky%28v=vs.85%29.aspx
这是COM类文档: http : //www.php.net/manual/zh/class.com.php
使用这种方法,您可以在Windows :)中做更多的事情。 我之所以使用它,是因为[bWaitOnReturn]参数,我无法使用任何其他方法来做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.