【问题标题】:Not able to execute batch file in php无法在php中执行批处理文件
【发布时间】:2014-12-09 12:58:44
【问题描述】:

我正在尝试在 php 文件中执行批处理文件。我正在使用 Apache 服务器。尝试了以下方法,但它不起作用

PHP 代码

echo shell_exec('download.bat');
echo exec('download.bat'); 
system ("cmd /c download.bat");//Also tried for exec and shell_exec

批处理文件包含使用 ftp 客户端下载代码

批处理文件

"c:\program files\coreftp\coreftp.exe" -s -O    -site mysite   -d /Export/*.*   -p C:\wamp\www\file\txt

如果我在 cmd 中运行它或直接运行,那么当我在 php 中运行它时它工作正常,它只是编写或回显批处理文件的代码

download.bat 文件在同一个文件夹中。

我也试过调用简单的bat文件

start "link" "https://www.google.co.in/?gfe_rd=cr&ei=NzuIVI-FG6aG8Qef44CAAw"

它也没有调用这个 bat 文件

【问题讨论】:

  • 到底是怎么回事不工作

标签: php windows apache batch-file wamp


【解决方案1】:

您确定您的“download.bat”文件与您的 PHP 脚本在同一个 PATH 中吗?

尝试像这样使用绝对路径

exec('C:\\MY\\PATH\\TO\\download.bat');

【讨论】:

  • 是的,它在同一个文件夹中,我试过这个但不起作用?
  • 尝试运行另一个只执行“ECHO”的 bat 以确保它来自您的 bat 或您的 php 脚本
【解决方案2】:

如果文件在同一目录中,只需使用exec('download.bat');,但是您需要确保 Apache 具有执行批处理文件的正确权限,即它应该在管理员帐户上运行。如果您使用的是 Win7 或更高版本,请查看如何在提升模式下运行程序。

【讨论】:

  • 如何检查apache是​​否有正确的权限?它在管理员帐户上运行。
  • 转到开始>运行>Services.msc 并在服务列表中查找“Apache Service”并检查它是否在具有管理员权限的帐户下运行。
  • 是的,它有管理员权限
  • 试试$test = exec('download.bat', $rVal); echo var_dump($test) . "\n\n"; echo var_dump($rVal);
  • 我试过了,它回显输出,它的类型是字符串。它不生成输出
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 2018-04-21
  • 2020-11-17
  • 2021-11-24
  • 1970-01-01
相关资源
最近更新 更多