使用VBS和批处理下载进度

时间:2013-04-29 12:38:25

标签: vbscript batch-file

我刚发现这个很好的VBS code允许从我在VBS代码中包含的地址下载一些文件:

Download "www.someadress.com", "c:\file.ext"

Sub Download(sSource,sDest)

    Const adTypeBinary = 1
    Const adSaveCreateNotExist = 1
    Const adSaveCreateOverWrite = 2

    set oHTTP = WScript.CreateObject("Microsoft.XMLHTTP")
    oHTTP.open "GET", sSource, False
    oHTTP.send
    set oStream = createobject("adodb.stream")

    oStream.type = adTypeBinary
    oStream.open
    oStream.write oHTTP.responseBody
    oStream.savetofile sDest, adSaveCreateOverWrite
    set oStream = nothing
    set oHTTP = nothing

End sub

但是虽然脚本有效,但它会默默地运行:我看不到任何窗口,弹出窗口或任何东西。下载文件后,它会显示在其文件夹中。

我想创建一个包含somebat.bat和我的VBS文件的批处理窗口。例如,我运行我的.bat文件,在此窗口中显示文本"Downloading new file"和下载百分比,如"Downloading new file .. 10%"

只需编辑和使用我的VBS和.bat文件就可以了吗?

1 个答案:

答案 0 :(得分:1)

显示"正在下载新文件"与文件的名称是没有问题,但显示其进展是。您需要一种方法,可以将您的下载文件切割成可以测量并在比例上绘制的图形,无论是图形进度条还是基于文本的计数器。最好的解决方案是使用像wget这样的外部实用程序,它具有这样的功能,或者使用一种更适合这种特性的语言,例如Ruby,这是Vbscripters的自然升级。