【发布时间】:2010-12-15 13:04:42
【问题描述】:
这可能吗?
我想做的是发送:
run_app.exe -param 'test' -name 'tester'
从 PHP 到 windows cmd 行。
这可能吗,还是我需要编写一个由应用程序以某种方式触发的 Windows 服务?
【问题讨论】:
标签: php command-line windows-server-2008
这可能吗?
我想做的是发送:
run_app.exe -param 'test' -name 'tester'
从 PHP 到 windows cmd 行。
这可能吗,还是我需要编写一个由应用程序以某种方式触发的 Windows 服务?
【问题讨论】:
标签: php command-line windows-server-2008
您可以为此使用exec()。
【讨论】:
你试过exec吗?
【讨论】:
或者你可以使用:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]);
在这里你可以找到运行方法参数: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);
return 将为您提供来自 cmd 的命令 return OR error,就像您坐在控制台前一样。此外,您可以针对 $shellObj 发出您喜欢的任何命令,该环境在 PHP 脚本的整个生命周期中都得到维护。所以不用将命令捆绑在脚本文件中,只需使用 exeCmd() 方法一一发出,这样您还可以处理返回和任何异常。
【讨论】: