从Windows中的脚本通过HTTP下载文件


19

我想要一种给定URL的方式通过HTTP下载文件的方式(类似于wget的工作方式)。我已经看到了此问题的答案,但是对要求有两个更改:

  • 我希望它可以在Windows 7或更高版本上运行(尽管如果它可以在Windows XP上运行,那是一个好处)。
  • 我需要能够在库存机器上仅使用脚本来执行此操作,脚本应该是可以在键盘上轻松输入或复制/粘贴的文本。
  • 越短越好。

因此,从本质上讲,我希望可以完成下载的.cmd(批处理)脚本,VBScriptPowerShell脚本。它可以使用COM或调用Internet Explorer,但是它需要在没有任何输入的情况下运行,并且在没有显示的情况下(例如通过Telnet会话)调用时应表现良好。


dload v1.0是Win32命令行工具,如wget superuser.com/a/833445/384998
seizu 2014年


并非重复,因为此问题专门用于寻找可在库存机上运行的东西(无需附加软件,例如Windows的wget)。
詹森·库姆斯

@ JasonR.Coombs接受的答案与该问题的答案之一相同,因此将来的读者将一无所获。
富兰克林·于

我同意; 在这一点上,更笼统的问题取代了这个问题。
杰森·库姆斯

Answers:


16

如果您的PowerShell> = 3.0,则可以使用Invoke-WebRequest

Invoke-WebRequest -OutFile su.htm -Uri superuser.com

或打高尔夫球:

iwr -outf su.htm superuser.com

2
常规cmd提示符下的powershell -command "iwr -outf su.htm superuser.com"
一线

14

我会使用BITS入门):

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.

从Windows 7开始,Microsoft 建议将PowerShell cmdlet用于BITS。

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

您也可以通过COM使用BITS ,请参见此处VBScript示例。还有“ bitsadmin ”,这是一个控制下载的命令行工具:

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

在Windows 7中bitsadmin.exe指出它本身已被弃用。不过:

% bitsadmin.exe /transfer "NAME" http://path/to/file C:\Path\for\local\file

2
现在看来,bitsadmin已被弃用,并且可能不包括在Windows的将来版本中。
詹森·库姆斯

@ JasonR.Coombs:链接?参考?
akira 2012年

2
technet.microsoft.com/zh-cn/magazine/ff382721.aspx ...因此,它只使用bits-cmdlet而不是“ bitadmin.exe”。
akira 2012年

1
感谢那。我所要做的就是bitsadmin告诉我它在运行时已被弃用。
杰森·库姆斯

请注意,out-路径必须是完全合格的,而不是相对(帽尖superuser.com/questions/365755/...
马特·威尔基

7

尝试Web客户端类。页底部有一个示例PowerShell脚本:

$c = new-object system.net.WebClient
$r = new-object system.io.StreamReader $c.OpenRead("http://superuser.com")
echo $r.ReadToEnd()

2
这是有帮助的。我发现WebClient也有一个DownloadFile方法,该方法会将内容直接下载到文件中。谢谢。
詹森·库姆斯

3

将以下六行(或仅最后四行)复制并粘贴到文本文件中。然后将其重命名为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

显然,您需要自定义此脚本中的三件事,以使其适合您。

  1. 显示“ http://www.exampleURL.com/FILE.TXT ” 的部分。您将需要用正确的URL替换要下载的文件。
  2. 您将在命令行运行的命令来执行此脚本;vget.vbs如果您叫它,将需要为脚本指定正确的名称。
  3. 以及FILE.TXT您要通过DOS批处理命令行将输出定向到的名称。

我只是尝试使用它从我的Dropbox帐户下载原始ASCII文本文件(功能更强大的cmd脚本),所以我不知道它是否适用于EXE文件等。或来自其他Web服务器。

如果您省去了前两行注释,那么它只有四行。如果您了解使用VBScript的方式,您甚至可以随身携带此代码,然后根据需要在命令行中输入它。它仅包含五个关键命令组件:CreateObject.Open.SendWScript.Echo.responseText


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.