需要帮助使用PHP执行.bat文件

时间:2011-11-15 22:41:25

标签: php

我正在尝试使用简单的php脚本执行.bat文件(m.bat):

<?php
if(isset($_POST['submit']))
{
echo exec('m.bat');
echo "Done!";
} else {
    ?>
<form action="" method="post">
<input type="submit" name="submit" value="Run">
</form>
<?php
}
?>

这只是在浏览器中显示.bat文件的内容,如果我在'exec'之前删除'echo',它什么都不做。 :(

4 个答案:

答案 0 :(得分:4)

exec()执行命令,但不打开文件。

您需要阅读m.bat的内容才能执行它。

试试这个

$file = file_get_contents("m.bat");
$output = exec($file);
print_r($output);

希望它有所帮助。

答案 1 :(得分:2)

首先,.bat文件在Windows上运行。如果您的服务器不是Windows,它将不会运行,而只是返回文件的内容。

如果您使用的是Windows,请尝试backtick operator

echo `m.bat`;

请注意,这些是反引号,而不是单引号。这在功能上等同于shell_exec()

答案 2 :(得分:1)

Windows批处理文件不会自行执行IIRC。您应该通过两个解释器中的一个来运行它们:

print shell_exec("cmd m.bat");

(否则与使用反引号运算符相同。)

答案 3 :(得分:0)

对于阅读此内容的其他用户 - 对我有用的内容:

运行Web服务器的用户需要访问文件。也许如果您使用Apache和服务的内置系统帐户,它将无权访问您的.bat文件。我已将服务的用户更改为本地系统管理员进行测试,并且工作正常。这是错误。

不要忘记检查您的网络服务器的错误日志!

相关问题