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

Jas*_*mbs 19 windows-7 download command-line http

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

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

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

Ste*_*nny 15

如果你有 PowerShell >= 3.0,你可以使用Invoke-WebRequest

Invoke-WebRequest -OutFile su.htm -Uri superuser.com
Run Code Online (Sandbox Code Playgroud)

或打高尔夫球:

iwr -outf su.htm superuser.com
Run Code Online (Sandbox Code Playgroud)

  • 来自常规 cmd 提示符的单行:`powershell -command "iwr -outf su.htm superuser.com"` (2认同)

aki*_*ira 14

我会使用后台智能传输服务(BITS)入门):

后台智能传输服务 (BITS) 是现代 Microsoft Windows 操作系统的一个组件,可促进使用空闲网络带宽的机器之间的文件优先级、节流和异步传输。

从 Windows 7 开始,Microsoft建议对 BITS使用 PowerShell cmdlet

% import-module bitstransfer
% Start-BitsTransfer http://path/to/file C:\Path\for\local\file
Run Code Online (Sandbox Code Playgroud)

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

BITSAdmin 是一个命令行工具,可用于创建下载或上传作业并监控其进度。

在 Windows 7 中bitsadmin.exe,它自己声明它是一个已弃用的工具。尽管如此:

% bitsadmin.exe /transfer "NAME" http://path/to/file C:\Path\for\local\file
Run Code Online (Sandbox Code Playgroud)

  • 现在看来,bitsadmin 已被弃用,并且可能不会包含在 Windows 的未来版本中。 (2认同)
  • http://technet.microsoft.com/en-us/magazine/ff382721.aspx ...因此,不是“bitadmin.exe”,而是使用位-cmdlet。 (2认同)

Cha*_*ent 7

试试System.Net.WebClient上课。页面底部有一个示例 PowerShell 脚本:

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

  • 这很有帮助。我发现 WebClient 也有一个 DownloadFile 方法,它会将内容直接下载到文件中。谢谢。 (2认同)

归档时间:

查看次数:

113883 次

最近记录:

5 年,6 月 前