VBScript文件系统问题

时间:2013-05-02 07:17:12

标签: batch-file

我有以下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

我在批处理脚本的循环中调用脚本,如果以&gt;&gt;&gt;&gt;&gt;开头的行,情况会很好注释,如果取消注释,则只下载其中一个文件。 例如,如果我两次调用它来下载a.pdf ad b.pdf,它只下载其中一个。 如果我注释掉上面提到的那一行,它会成功下载所有文件。有什么问题?

1 个答案:

答案 0 :(得分:0)

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

我会尝试你的批次

start /wait vbscipt...

CALL vbscript...

至于为什么 - 作为VBScript的完整政治家,我建议你打开追加日志文件,第二个脚本运行,而第一个stil打开日志文件。