Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I want a way to download a file via HTTP given its URL (similar to how wget works). I have seen the answers to this question, but I have two changes to the requirements:

  • I would like it to run on Windows 7 or later (though if it works on Windows XP, that's a bonus).
  • I need to be able to do this on a stock machine with nothing but the script, which should be text that could be easily entered on a keyboard or copy/pasted.
  • The shorter, the better.

So, essentially, I would like a .cmd (batch) script, VBScript, or Powershell script that can accomplish the download. It could use COM or invoke IE, but it needs to run without any input, and should behave well when invoked without a display (such as through a telnet session).

share|improve this question

4 Answers 4

up vote 3 down vote accepted

If you have PowerShell >= 3.0, you can use Invoke-WebRequest

Invoke-WebRequest http://superuser.com -OutFile index.html

Or golfed

wget http://superuser.com -outf index.html
share|improve this answer

i would use BITS(primer):

Background Intelligent Transfer Service (BITS) is a component of modern
Microsoft Windows operating systems that facilitates prioritized, 
throttled, and asynchronous transfer of files between machines using
idle network bandwidth.

starting with windows7 microsoft advises to use the powershell cmdlets for BITS.

% import-module bitstransfer
% Start-BitsTransfer http://path/to/file C:\Path\for\local\file

you could also use BITS via COM, see here for an example vbscript. and there is 'bitsadmin', a commandline tool to control downloads:

BITSAdmin is a command-line tool that you can use to create download or
upload jobs and monitor their progress.

in windows7 bitsadmin.exe states itself that it is a deprecated tool. nevertheless:

% bitsadmin.exe /transfer "NAME" http://path/to/file C:\Path\for\local\file
share|improve this answer
2  
It appears now that bitsadmin is deprecated and may not be included in future versions of Windows. –  Jason R. Coombs Feb 20 '12 at 14:11
    
@JasonR.Coombs: link? reference? –  akira Feb 21 '12 at 6:06
1  
technet.microsoft.com/en-us/magazine/ff382721.aspx ... so, instead of "bitadmin.exe" one just uses bits-cmdlets. –  akira Feb 21 '12 at 6:24
1  
thanks for that. All I had to go on was bitsadmin was telling me it was deprecated when I ran it. –  Jason R. Coombs Feb 22 '12 at 12:27

Try the Web Client class there is a sample powershell script at the bottom of this page:

$c = new-object system.net.WebClient
$r = new-object system.io.StreamReader $c.OpenRead("http://superuser.com")
echo $r.ReadToEnd()
share|improve this answer
    
This is helpful. I found the WebClient also has a DownloadFile method, which will download the content directly to a file. Thanks. –  Jason R. Coombs Apr 10 '10 at 11:56

Copy and paste the following 6 lines (or just the last 4 lines) into a text file. Then rename it to vget.vbs.

'cscript vget.vbs >FILE.TXT
'Run this vbscript at command line. Use above syntax to download/create FILE.TXT
Set oX = CreateObject("Microsoft.XmlHTTP")
oX.Open "GET", "http://www.exampleURL.com/FILE.TXT", False
oX.Send ""
WScript.Echo oX.responseText

Obviously you need to customize three things in this script to make it work for you.

  1. The part which says "http://www.exampleURL.com/FILE.TXT". You will need to substitute the correct URL for the file you wish to download.
  2. The command you will run at the command line to execute this script; will need to specify the correct name for the script, vget.vbs, if that is what you called it.
  3. And the name FILE.TXT that you want the output to be directed to by dos batch command line.

I have only tried using this to download a raw ASCII text file (a more powerful cmd script) from my Dropbox account, so I don't know if it will work for EXE files, etc.; or from other webservers.

If you dispense with the first two comment lines, it is only 4 lines long. If you know your way around VBSCRIPT you might even be able to carry this code around in your head, and type it into the command line as needed. It only contains five key command components: CreateObject, .Open, .Send, WScript.Echo and .responseText.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.