我正在尝试使用简单的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',它什么都不做。 :(
答案 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文件。我已将服务的用户更改为本地系统管理员进行测试,并且工作正常。这是错误。
不要忘记检查您的网络服务器的错误日志!