Skip to content

Instantly share code, notes, and snippets.

@udawtr udawtr/wget.vbs
Last active May 15, 2019

Embed
What would you like to do?
wget.vbs - similar to wget but written in vbscript
'wget.vbs - similar to wget but written in vbscript
'based on a script by Chrissy LeMaire
' Usage
if WScript.Arguments.Count < 1 then
MsgBox "Usage: wget.vbs <url> (file)"
WScript.Quit
end if
' Arguments
URL = WScript.Arguments(0)
if WScript.Arguments.Count > 1 then
saveTo = WScript.Arguments(1)
else
parts = split(url,"/")
saveTo = parts(ubound(parts))
end if
' Fetch the file
Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objXMLHTTP.open "GET", URL, false
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(saveTo) Then objFSO.DeleteFile saveTo
Set objFSO = Nothing
objADOStream.SaveToFile saveTo
objADOStream.Close
Set objADOStream = Nothing
End if
Set objXMLHTTP = Nothing
' Done
WScript.Quit
@MalikKillian

This comment has been minimized.

Copy link

commented Jul 3, 2013

MSXML2.ServerXMLHTTP can be used in place of MSXML2.XMLHTTP if you encounter "Access is denied" errors.

@udawtr

This comment has been minimized.

Copy link
Owner Author

commented Nov 28, 2013

@MalikKillian
Thanks. Your comment is very useful to me.

@Abhinav-Biswas

This comment has been minimized.

Copy link

commented Jul 7, 2015

how to provide proxy server details (host/username/password) in this script?

@bitnetwork

This comment has been minimized.

Copy link

commented Apr 2, 2016

For you jscripties out there, I optimized this for jscript here: https://gist.github.com/BitNetwork/b6f7ef23fac1044e5dfb1187fd1936af

@OdeV66

This comment has been minimized.

Copy link

commented Nov 13, 2017

Hi, when running the VBS I'm getting 'Invalid URL', while in fact, it isn't? Literally copying that into the browser does get me to that file/page.
Any ideas please?
image

@pravyroxor

This comment has been minimized.

Copy link

commented Apr 3, 2019

Some zip files downloaded using this script ending with error:
Line: 31
Char: 1
Error: Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
Code: 800A0BB9
Source: ADODB.Stream

@Robkof2002

This comment has been minimized.

Copy link

commented Apr 18, 2019

Resolvendo erro : NET::ERR_CERT_COMMON_NAME_INVALID

'wget.vbs - similar to wget but written in vbscript
'based on a script by Chrissy LeMaire

' Usage
if WScript.Arguments.Count < 1 then
MsgBox "Usage: wget.vbs (file)"
WScript.Quit
end if

' Arguments
URL = WScript.Arguments(0)
if WScript.Arguments.Count > 1 then
saveTo = WScript.Arguments(1)
else
parts = split(url,"/")
saveTo = parts(ubound(parts))
end if

' Fetch the file
Const SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")

objXMLHTTP.open "GET", URL, false
objXMLHTTP.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
Call objXMLHTTP.SetRequestHeader("Content-Type", "text/xml")
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(saveTo) Then objFSO.DeleteFile saveTo
Set objFSO = Nothing

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

Set objXMLHTTP = Nothing

' Done
WScript.Quit

@bofhbug

This comment has been minimized.

Copy link

commented May 15, 2019

Please note: This only works with http: or https with the outdated TLS 1.0
TLS 1.2 is NOT a default secure protocol in WinHTTP in Windows:
https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-a-default-secure-protocols-in
https://gist.github.com/BitNetwork/b6f7ef23fac1044e5dfb1187fd1936af#gistcomment-2609387

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.