0

我有以下 vbscript

    Set colNamedArguments = WScript.Arguments.Named
    dim logFSO, logFile
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set logFSO = CreateObject("Scripting.FileSystemObject")
>>>>    'Set logFile = logFSO.OpenTextFile("a.log", ForAppending, True)

    strFileURL = <passed from batch script>
         strHDLocation = <passed from batch script>
    WebUser = "user"
    WebPass = "pwd"


    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

    'objXMLHTTP.open "GET", strFileURL, false
    objXMLHTTP.open "GET", strFileURL, false, WebUser, WebPass
    objXMLHTTP.send()

    If objXMLHTTP.Status = 200 Then
      Set objADOStream = CreateObject("ADODB.Stream")
      objADOStream.Open
      objADOStream.Type = 1 'adTypeBinary

      objADOStream.Write objXMLHTTP.ResponseBody
      objADOStream.Position = 0    'Set the stream position to the start

      'Set objFSO = Createobject("Scripting.FileSystemObject")
       ' If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
      'Set objFSO = Nothing

      objADOStream.SaveToFile strHDLocation
      objADOStream.Close
      Set objADOStream = Nothing
    End if

    Set objXMLHTTP = Nothing

我从批处理脚本循环调用脚本,如果以 >>>> 开头的行被注释,则一切正常,如果未注释,则只下载一个文件。例如,如果我调用它两次来下载 a.pdf 和 b.pdf,它只会下载其中一个。如果我注释掉上面提到的行,它会成功下载所有文件。问题是什么?

4

1 回答 1

0

我建议您向我们展示您的 .bat 文件 - 但水晶球告诉我您正在调用 VBscript 两次,而不是等待第一次完成。

我会在你的批次中尝试

start /wait vbscipt...

或者

CALL vbscript...

至于为什么 - 作为一个完整的 VBScript 政治家,我建议您打开日志文件以进行附加,并且第二个脚本在第一个仍然打开该日志文件时运行。

于 2013-05-02T08:54:55.463 回答