是否有可能创建一个批处理文件,它会打开火狐,运行一个网站,然后再次关闭火狐?
就像是:
@echo off
start firefox http://.....
这是我坚持......它需要关闭firefix时再次网站加载完成。
它是用来每天晚上23:59运行维护脚本。 剧本是基于本地的,但一个不能运行的asp文件,而无需使用一台服务器,所以我把它作为一个网站。
是否有可能创建一个批处理文件,它会打开火狐,运行一个网站,然后再次关闭火狐?
就像是:
@echo off
start firefox http://.....
这是我坚持......它需要关闭firefix时再次网站加载完成。
它是用来每天晚上23:59运行维护脚本。 剧本是基于本地的,但一个不能运行的asp文件,而无需使用一台服务器,所以我把它作为一个网站。
从文章几年前,我在写aspfaq.com改编。
使用AT命令和Windows脚本宿主(或更基本的任务调度)来调度以一定的间隔一个VBS文件。
首先,ASP更改为VBS文件。 这是通过(1)改变扩展到VBS完成; (2)所有的Server.CreateObject调用给CreateObject改变; 和,(3)除去所有<%%>
分隔符和任何浏览器的代码目的地(例如,回复于语句或客户端HTML)。 我没有遇到任何进一步的并发症,但情况因人而异。
您存储在文件系统中的VBS文件,并使用AT命令安排它(这实际上是调度它与Windows的调度服务执行)。 在命令提示符下,你可以使用AT本身看到目前在计划任务的列表。 您可以使用AT /? 找出其所有的语法可能性。
例如,要获取文件在上午9:00运行的每个工作日,我推出这个批处理文件(第一行清除现有条目):
at /delete /y
at 9:00 /every:m,t,w,th,f d:\net\shared\getdata.vbs
请注意,没有涉及Web服务器; 该文件将直接通过文件系统访问。 一旦我在“用户必须先登录”和“任务必须重新启动时复位”障碍(这两个我认为是与特定的机器,是不是我们的控制之下的问题),所有已运行对于我来说足够了。
对于使用WSH,CDONTS和任务计划发送电子邮件定期的示例,请参阅KB#221495 。
如果你正在做的是SQL Server数据库的工作,你可能会考虑使用工作。 这将让你保持你的数据库内作业的所有处理,防止与多个系统,连接相关的并发症,并适应ASP代码是不可ASP般的行为。
如果你只是想打电话给一个已经存在的网站上的一个页面,下面是一个简单的方法来完成它。
Option Explicit
On Error Resume Next
' Declare our vars
Dim objWinHttp, strURL
' Request URL from 1st Command Line Argument. This is
' a nice option so you can use the same file to
' schedule any number of differnet scripts just by
' changing the command line parameter.
'strURL = WScript.Arguments(0)
' Could also hard code if you want:
strURL = "http://www.example.com/myscript.asp"
' For more WinHTTP v5.0 info, including where to get
' the component, see our HTTP sample:
' http://www.asp101.com/samples/winhttp5.asp
Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5")
objWinHttp.Open "GET", strURL
objWinHttp.Send
' Get the Status and compare it to the expected 200
' which is the code for a successful HTTP request:
' http://www.asp101.com/resources/httpcodes.asp
If objWinHttp.Status <> 200 Then
' If it's not 200 we throw an error... we'll
' check for it and others later.
Err.Raise 1, "HttpRequester", "Invalid HTTP Response Code"
End If
' Since in this example I could really care less about
' what's returned, I never even check it, but in
' general checking for some expected text or some sort
' of status result from the ASP script would be a good
' idea. Use objWinHttp.ResponseText
Set objWinHttp = Nothing
If Err.Number <> 0 Then
' Something has gone wrong... do whatever is
' appropriate for your given situation... I'm
' emailing someone:
Dim objMessage
Set objMessage = Server.CreateObject("CDO.Message")
objMessage.To = "you@example.com"
objMessage.From = "cron job <cron@example.com>"
objMessage.Subject = "An Error Has Occurred in a " _
& "Scheduled Task"
objMessage.TextBody = "Error #: " & Err.Number & vbCrLf _
& "From: " & Err.Source & vbCrLf _
& "Desc: " & Err.Description & vbCrLf _
& "Time: " & Now()
objMessage.Send
Set objMessage = Nothing
End If
要么改变strURL
到脚本或取消对线strURL = WScript.Arguments(0)
和将URL传递作为参数。 与把它放在任务调度cscript.exe
。
这就是我所有我的基于ASP的计划任务,所以我可以测试更加容易,你可能会想锁定你的脚本下降到仅接受通过服务器的IP访问,以确保它不是由一个机器人叫。
编辑:为清楚。