vbScript自动文件下载扩展名



我在网上发现了这个有用的vbscript来自动下载文件。

function download(sFileURL, sLocation)
'create xmlhttp object
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'get the remote file
objXMLHTTP.open "GET", sFileURL, false
'send the request
objXMLHTTP.send()
'wait until the data has downloaded successfully
do until objXMLHTTP.Status = 200 :  wscript.sleep(1000) :  loop
'if the data has downloaded sucessfully
If objXMLHTTP.Status = 200 Then
        'create binary stream object
    Set objADOStream = CreateObject("ADODB.Stream")
    objADOStream.Open
        'adTypeBinary
    objADOStream.Type = 1
    objADOStream.Write objXMLHTTP.ResponseBody
        'Set the stream position to the start
    objADOStream.Position = 0    
        'create file system object to allow the script to check for an existing file
        Set objFSO = Createobject("Scripting.FileSystemObject")
        'check if the file exists, if it exists then delete it
    If objFSO.Fileexists(sLocation) Then objFSO.DeleteFile sLocation
        'destroy file system object
    Set objFSO = Nothing
        'save the ado stream to a file
    objADOStream.SaveToFile sLocation
        'close the ado stream
    objADOStream.Close
    'destroy the ado stream object
    Set objADOStream = Nothing
'end object downloaded successfully
End if
'destroy xml http object
Set objXMLHTTP = Nothing
End function
download "http://remote-location-of-file", "C:name-of-file-and-extension"

有没有办法强制它解析url,例如在某个web位置下载*.exe文件?像这样:

URL:  http://examplesite.com/files/
file0001.exe  

因为我有一个URL,其中有一个文件的名称会随着时间的推移而更改。它的扩展名为.exe。

我在上面启用了http和ftp协议,ftp没有身份验证(免费)。

只有在该网站上启用文件浏览时,这才有可能实现,而这种情况很少发生。您将需要一些列出文件名的URL来解析文件名。你最好用wget这样的工具http://users.ugent.be/~bpuype/wget/,它有这样的选项。同样,对于这样的操作来说,vbscript不是一个好的选择,如果你从头开始,你会更好地使用例如Ruby。

如果你发布有问题的网址,也许我可以进一步帮助你。

最新更新