【问题标题】:Sending commands to windows command line (cmd) from PHP从 PHP 向 Windows 命令行 (cmd) 发送命令
【发布时间】:2010-12-15 13:04:42
【问题描述】:

这可能吗?

我想做的是发送:

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

从 PHP 到 windows cmd 行。

这可能吗,还是我需要编写一个由应用程序以某种方式触发的 Windows 服务?

【问题讨论】:

    标签: php command-line windows-server-2008


    【解决方案1】:

    您可以为此使用exec()

    【讨论】:

      【解决方案2】:

      你试过exec吗?

      【讨论】:

        【解决方案3】:

        或者你可以使用:

        $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] 参数,这是我无法使用任何其他方法完成的。

        【讨论】:

          【解决方案4】:

          这里有一个项目,可以让 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() 方法一一发出,这样您还可以处理返回和任何异常。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-14
            • 2020-04-08
            • 1970-01-01
            • 2011-03-07
            相关资源
            最近更新 更多