我有一个 php 文件,作为界面并包含 3 个按钮来按下。第一个和第二个按钮将指向由调度程序批处理文件生成的下载链接。当点击第三个按钮时会调用run.php,然后它将手动执行批处理文件以获取文件的最新更新。
问题:当我在 localhost 中尝试时,当 scheduler.bat 文件完全运行时,div“statusNow”只会从“请稍候,正在进行中”变为“已完成”。
但是当我将文件放在生命服务器中时,在批处理文件完全运行之前(基本上在第一个 xcopy 命令之后),它已经将状态更改为已完成。
<!DOCTYPE html>
<html>
<head>
<script>
function dothework()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("statusNow").innerHTML="Completed";
document.getElementById("b1").disabled=false;
document.getElementById("b2").disabled=false;
document.getElementById("b3").disabled=false;
}
}
xmlhttp.open("GET","run.php",true);
xmlhttp.send();
document.getElementById("b1").disabled=true;
document.getElementById("b2").disabled=true;
document.getElementById("b3").disabled=true;
document.getElementById("statusNow").innerHTML="Please wait... In the progess...";
}
</script>
</head>
<body>
<form>
<button type="button" id="b1" onclick="window.location.href='downloadlink1'"</button>
<button type="button" id="b2" onclick="window.location.href='downloadlink2'"</button>
<br><br>
<button type="button" id="b3" onclick="dothework()">Export</button>
<div id="statusNow"><h2></h2></div>
</form>
</body>
</html>
这里将是 php 文件
<?php
system("cmd /c C:\scheduler.bat");
?>
调度程序文件
@echo off
xcopy C:afile C:download\afile /s /e /i /y
cd C:download\
"C:\Program Files\WinRAR\Rar.exe" a -df -r "afile.rar" "afile"
xcopy C:bfile C:download\bfile /s /e /i /y
cd C:download\
"C:\Program Files\WinRAR\Rar.exe" a -df -r "bfile.rar" "bfile"