Make server automatic run asp-script every day

前端 未结 2 484
后悔当初
后悔当初 2020-12-19 20:52

Is it possible to create a batch-file which opens firefox, runs a website and then closes firefox again?

Something like:

@echo off
start firefox http         


        
2条回答
  •  情书的邮戳
    2020-12-19 21:09

    If you just want to call a page on a website that already exists, the following is an easy way to accomplish it.

    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 "
        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
    

    Either change strURL to your script or uncomment the line strURL = WScript.Arguments(0) and pass the url as a parameter. Put it in Task scheduler with cscript.exe.

    This is how I do all my ASP based scheduled tasks so I can test that much easier, you might want to lock your script down to only accepting access via the server's IP to make sure it's not called by a bot.

    Edit: For clarity.

提交回复
热议问题