【问题标题】:How to execute batch file via PHP?如何通过 PHP 执行批处理文件?
【发布时间】:2013-10-05 23:19:01
【问题描述】:

我尝试在 PHP 中使用 exec 命令执行批处理文件。 我只是像这样使用它:

$filename = 'test.bat';
exec($filename);

但没有得到任何输出。我用另一个命令尝试了这个功能,它工作正常。 您的建议将不胜感激。 谢谢

【问题讨论】:

  • 您可能应该在 $filename 上设置路径。也许它没有找到文件的路径。

标签: php batch-file command-line exec


【解决方案1】:
system("cmd /c C:[path to file]");

正如“RichieHindle”在类似主题中所说。

或者试试

exec("cmd.exe /c test.bat") ?

【讨论】:

    【解决方案2】:

    如果您需要执行命令并将命令中的所有数据直接传回而不受任何干扰,请使用 passthru() 函数。

    http://md1.php.net/manual/en/function.passthru.php

    【讨论】:

      【解决方案3】:

      主要问题是pathpermission。我已经得到我的批处理文件来执行。

      这是我的解决方案:

      1. 我从 php 文件所在的同一文件夹中运行我的批处理文件。

        exec("mybatch.bat");

      2. 我确保 Apache 服务有足够的权限来运行批处理文件。只是为了测试我使用 Apache 的管理员帐户登录。

      【讨论】:

      • 正确的解决方案,批处理文件和php文件都在同一个文件夹中
      【解决方案4】:

      正如exec doc中解释的那样:

      echo exec($filename);
      

      exec($filename, $output);
      echo $output;
      

      【讨论】:

        【解决方案5】:

        Windows 服务器上注意引号。这对我有用:

        system('cmd.exe /c C:\myfolder\_batches\run_this_batch.bat');
        

        【讨论】:

          【解决方案6】:

          我做了以下事情:

          1. 创建了一个 PHP 文件,其中包含:

            $gotIt = array();
            $file = "getMyIP.bat";
            exec( $file, $gotIt );
            echo implode("<br>",$gotIt);
            
          2. 在同一文件夹中创建了一个批处理文件

            @ECHO off
            ipconfig
            
          3. 运行它并等待防火墙跳过整个动作。

          然后我得到如下输出:

          Windows IP Configuration
          
          
          PPP adapter 3 USB Modem:
          
          Connection-specific DNS Suffix . :
          IP Address. . . . . . . . . . . . : ***.***.202.81
          Subnet Mask . . . . . . . . . . . : 255.255.255.255
          Default Gateway . . . . . . . . . : ***.***.202.81
          

          只有***所在的数字

          【讨论】:

            猜你喜欢
            • 2023-03-16
            • 1970-01-01
            • 1970-01-01
            • 2018-04-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多