首先,对于VBscripts,我是一个完全的初学者。 我只有一个用VB编写的asp文件启动批处理文件。 问题是,我想要一些东西,表明页面加载像一个gif。批处理需要大约10分钟才能运行,我得到的是一个空白页,直到它完成。
这是我的整个代码
<%@ Language = VBScript %>
<HTML>
<script runat="server" language=VBScript>
' The batch file is running here
Dim myExecutor
Dim commandline
commandline = "cmd.exe /c C:\test.bat "
Set myExecutor = Server.CreateObject("WScript.Shell")
myExecutor.Run commandline,0,true
Set myExecutor = Nothing
Response.Write "The batch run is finnished <p> "
</script>
<body>
The batch is loading. <!--renders after batch is finnished :/ -->
</body>
</HTML>
我尝试运行一个onclick事件<asp:Button Text="Click here" OnClick="run_batch" runat="server"/>
,但是当我使用sender As Object, e As EventArgs
作为参数时,给出了500页错误,可能是因为我没有这些类,只在一个asp文件中运行所有内容。 / p>
感谢。
答案 0 :(得分:1)
问题是您的代码会在页面加载后立即执行。以Sub
定义您要执行的操作,并在onload
事件处理程序中调用它。一旦页面上的所有内容都加载,该事件就会触发。
我在hta中测试了以下内容并且它有效。不确定它转换为asp的效果如何。
<HTML>
<script language=VBScript>
sub DoStuff()
document.Write "<p>Doing stuff </p>"
CreateObject("WScript.Shell").Run "ping localhost",0,true
document.Write "<p>The batch run is finished <p> "
end sub
</script>
<body onload="DoStuff()">
</body>
</HTML>
或者对于按钮方法,只需使用
<button onclick="DoStuff()"> Do Stuff </button>