是否可以使用 Windows 命令行下载?

Rob*_*ssa 133 web command-line

不使用任何非标准(包括 Windows)实用程序,是否可以使用 Windows 命令行下载?

首选版本是 Windows XP,但了解更新版本也很有趣。

为了进一步澄清我的问题:

  • 它必须使用 HTTP
  • 该文件需要保存
  • 标准干净的 Windows 安装,没有额外的工具

所以基本上,因为每个人都在尖叫Wget,我想要简单的 Wget 功能,而不使用 Wget。

小智 76

从 Windows 7 开始,我相信有一种尚未提及的方法很简单:

句法:

bitsadmin /transfer job_name        /download /priority priority    URL   local\path\file

例子:

bitsadmin /transfer mydownloadjob /download /priority normal ^
                  http://example.com/filename.zip C:\Users\ username \Downloads\filename.zip

^为了便于阅读,分成两行(以避免滚动)。)

警告:正如评论中所指出的,bitsadmin帮助消息开头说:

BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.
Run Code Online (Sandbox Code Playgroud)

...但另一条评论报告说它适用于 Windows 8。

  • 它是 windows7 的一部分。 (16认同)
  • 注意:*BITSAdmin 已弃用,不保证在未来版本的 Windows 中可用。BITS 服务的管理工具现在由 BITS PowerShell cmdlet 提供。* (7认同)
  • 这应该是最高投票的答案。尽管如此,bitsadmin 已被弃用,以支持 Windows powershell。 (4认同)
  • 在我的 Windows 7 上不起作用... (3认同)
  • 确认在 Win7 上工作 (3认同)
  • 它存在于 Win10 中……虽然不处理 FTP 协议 :( (2认同)

小智 54

您可以编写一个 VBScript 并从命令行运行它

创建一个文件downloadfile.vbs并插入以下代码行:

' Set your settings
    strFileURL = "http://www.it1.net/images/it1_logo2.jpg"
    strHDLocation = "c:\logo.jpg"

' Fetch the file
    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

    objXMLHTTP.open "GET", strFileURL, 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(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO = Nothing

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

Set objXMLHTTP = Nothing
Run Code Online (Sandbox Code Playgroud)

从命令行运行它,如下所示:

cscript.exe downloadfile.vbs 
Run Code Online (Sandbox Code Playgroud)


小智 40

Windows 7 包含 PowerShell,几乎没有什么是您无法使用 PowerShell 完成的。

Windows PowerShell 中 wget 的本机替代品?

  • 来自 cmd.exe:`powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }"`。也可以在运行提示下工作 (18认同)
  • (New-Object Net.WebClient).DownloadFile('someurl', 'somepath') (17认同)
  • **Powershell** 适用于 _Powerrangers_!这有多酷,为什么我不知道这件事?再见`cmd`。 (3认同)

小智 26

PowerShell(包含在 Windows 8 中,包含在早期版本的 .NET 中)具有此功能。该powershell命令允许从命令行或.bat文件运行任意 PowerShell 命令。因此,以下行是我们想要的:

powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://example.com/', 'c:\somefile') }"
Run Code Online (Sandbox Code Playgroud)

  • @harrymc 确定这是一个答案。它下载一个文件。你还想要什么? (3认同)
  • 这在 Windows Server 2012 中不起作用,仅供参考,它会抛出 MethodInvocationException (2认同)

DHa*_*yes 19

我找到了一种方法,但实际上,只需安装Wget

您可以从命令行 (iexplore.exe) 使用 Internet Explorer,然后输入 URL 作为参数。所以,运行:

iexplore.exe http://blah.com/filename.zip
Run Code Online (Sandbox Code Playgroud)

无论文件是什么,您都需要指定它不需要提前确认。瞧,它会自动执行下载。所以,是的,这在技术上是可行的,但是上帝以不同的方式做到这一点。

  • 就像我说的,您必须取消选择提示保存该文件类型的选项。例如,下载一个 zip 文件,禁用该提示,然后将来从命令行访问的任何 zip 文件都将自动保存。 (3认同)

Chr*_*Noe 14

Windows Explorer(不要与 Internet Explorer 混淆)可以通过 HTTP 下载文件。只需在地址栏中输入 URL。或者从命令行,例如,C:\windows\explorer.exe http://somewhere.com/filename.ext.

您会收到经典的文件下载提示。除非文件是 Windows 资源管理器知道如何内联显示的类型(.html、.jpg、.gif),在这种情况下,您需要右键单击以保存它。

我刚刚在我的 Windows XP 2002 SP1 处女安装的VMware映像上对此进行了测试,并且运行良好。

  • 这需要用户交互。可能不是大多数想要从命令提示符下载文件的人想要的 (4认同)

小智 7

您可以使用(在标准的 Windows bat 中):

powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }"
Run Code Online (Sandbox Code Playgroud)

它似乎需要PowerShell v4 ...

(感谢那条评论这个评论


Sat*_*ppy 6

使用 FTP。

从命令行:

ftp ftp.somesite.com
user
password
Run Code Online (Sandbox Code Playgroud)

等等。我记得的每个 Windows 版本中都包含 FTP;可能不在 3.1 中,也可能不在Windows 95 中,但肯定是之后的所有内容。

@RM:如果您不想下载任何其他工具,那将会很艰难。有一个适用于 Windows的命令行WgetWget旨在完全满足您的要求。


小智 5

像这样使用 PowerShell:

  1. 创建一个 download.ps1 文件:

    param($url, $filename)
    $client = new-object System.Net.WebClient 
    $client.DownloadFile( $url, $filename)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 现在你可以下载这样的文件:

    powershell Set-ExecutionPolicy Unrestricted
    powershell -ExecutionPolicy RemoteSigned -File "download.ps1" "http://somewhere.com/filename.ext" "d:\filename.ext"
    
    Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

467047 次

最近记录:

5 年,2 月 前