如何从PHP执行批处理脚本

时间:2013-05-31 15:26:11

标签: php mysql windows iis batch-file

服务器规格 Windows 2008Rc2 IIS7 MySQL的 PHP 5.3

我有一个批处理文件,它执行mysql转储,然后压缩内容并使其可以在公共文件夹中下载。现在我知道这个脚本是有效的,因为它每次我手动运行都运行良好,但我似乎无法让它通过PHP工作。

基本上我想能够调用一个运行这个批处理文件的php页面。

我知道exec已启用,因为我能够使用shell_exec来ping google.com,我可以恢复输出。

我尝试过只使用system()和exec(),但仍然没有。在某些情况下,它看起来像页面正在工作,但它只是在加载提示符。

我在高低处搜索了一百万种不同的命令组合,但它们似乎都不适用于我。

我已经减少了尝试这个简单的命令,因为我可以ping这个工作。虽然在调用页面时它只显示echo语句。

<?php

echo "Starting...";

echo shell_exec("C:\inetpub\wwwroot\DBZIP2");

echo "Success!";

?>

我也尝试了这个,但是页面只是挂在加载屏幕上而不显示echo命令。

<?php

    echo "Starting...<br><br>";

    system("cmd /c START C:\inetpub\wwwroot\DBZIP2");

    echo "Success!";

?>

不确定从哪里开始。我已尝试路径化cmd.exe文件,但这没有任何区别。有更简单的方法吗?也许另一种编程语言?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

尝试使用带有CMD.exe完整路径的“shell_exec”执行

<?php
    echo "Starting...<br><br>";
    shell_exec("c:\WINDOWS\system32\cmd.exe /c START C:\inetpub\wwwroot\DBZIP2");
    echo "Success!";
?>