【问题标题】:execute a bat file using php installed in different drive使用安装在不同驱动器中的 php 执行 bat 文件
【发布时间】:2012-06-25 04:36:30
【问题描述】:

当我运行 exec('C:\execute\batfile.bat'); 时,当我的 xampp 安装在 C:

但是当我在另一台服务器上移动我的代码时,安装了 xampp D:

所以我的代码 exec('D:\execute\batfile.bat'); 失败并且在我在浏览器中测试时没有显示任何错误。

请帮助如何运行未保存在 C 中的 bat 文件:

非常感谢

【问题讨论】:

  • 第一步是用简单的东西替换 batfile.bat 的内容 - 比如 echo THIS IS A TEST > somefile.txt 这应该告诉文件是否正在执行(你看看是否创建了 somefile.txt)如果它在批处理文件中传递它是您的代码,您需要对其进行调试。
  • 嗨@preet sangha。谢谢你的回复我试过了。但是当我使用浏览器运行 bat 文件时,它仍然不起作用。但是当我单击 bat 文件时,它可以工作。我把代码改成灵活的<?php echo exec('execute\batfile.bat'); ?>
  • 您需要检查 PHP 执行日志以及 wdinwos 日志。直到你知道出了什么问题,你才会瞎跑。

标签: php batch-file windows-xp exec drive


【解决方案1】:

感谢您的建议和解决方案:)

我按照@preet sangha 的建议,发现“ERROR: The parameter is wrong”。

然后我对参数不正确的原因进行了更多研究。然后我偶然发现了 juan 在 laluca 和 ernestokarim 在http://php.net/manual/en/function.exec.php 的答案。我遵循 ernestokarim 的回答

开始 > 运行 > "services.msc"

搜索 Apache 服务,右键单击并选择属性。

您将看到两个单选按钮,如果不是,请检查第一个,然后 也选中下面的复选框。

现在重启 Apache

我意识到,由于某种原因,当 xampp 安装在 C 中时,函数 exec 工作正常,但是当您将它安装在其他驱动器中时,它并不是因为某些权限问题。 以上步骤解决了我的困境:-)

【讨论】:

    【解决方案2】:

    尝试回显输出,也许你只是错过了 bat 文件中的某些内容,这不是 php 问题

    echo system("D:\execute\batfile.bat");
    

    【讨论】:

    • 感谢@imer。我也尝试过系统但无法正常工作。我很困惑,因为当 xampp 安装在 C 中时:没有问题,但是当安装在其他驱动器中时它甚至不输出打印。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多