繁体   English   中英

从PHP发送命令到Windows命令行(cmd)

[英]Sending commands to windows command line (cmd) from PHP

这可能吗?

我想做的是发送:

run_app.exe -param 'test' -name 'tester'

从PHP到Windows cmd行。

这是可能的还是我需要编写由应用程序触发的Windows服务?

您尝试过exec吗?

您可以为此使用exec()

我建议使用标准的PHP system命令。 官方的PHP网站上有很多信息和示例。

关于 exec()system()passthru()之间的区别,有一个关于SO的已回答问题

这是一个允许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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM