首选版本是Windows XP,但对于较新的版本也很有趣。 />
要进一步阐明我的问题:
它必须使用HTTP
文件需要保存
标准的干净Windows安装,不需要额外的工具
所以基本上,由于每个人都在尖叫Wget,所以我想要简单的Wget功能,而不使用Wget。
#1 楼
您可以编写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
从命令行运行它,如下所示:
cscript.exe downloadfile.vbs
评论
我想知道这是否依赖于Internet Explorer,但是我想这对于“如果Windows中唯一的浏览器已死,如何连接到Internet?”将是一个很好的答案。在superuser.com/questions/50427/…:-)
– Arjan
09-10-23在15:37
那就是如果允许对cscript.exe的许可
– hello_there_andy
15年4月2日在11:23
我可以确认我已经在Windows PE 5.1中测试了此脚本,并且它的工作原理像个魅力。我打算将其用于脱机部署,以便根据服务器上存储的文本文件检查USB驱动器中平台的版本。
–徒步旅行者
16年5月5日在16:55
#2 楼
从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.
...,但又有一条评论报道它在Windows 8上有效。
/>
评论
它是Windows7的一部分。
– akira
2011年8月20日下午4:20
在我的Windows 7上无法正常工作...
– jyz
2012年4月5日,0:14
这应该是投票最多的答案。不过,不建议使用bitsadmin,而是使用Windows powershell。
–lenkite
2012年5月14日9:04
确认在Win7上工作
– kaiser
2012-12-10 7:41
注意:BITSAdmin已被弃用,并且不能保证在Windows的将来版本中可用。 BITS PowerShell cmdlet现在提供了BITS服务的管理工具。
– Ujjwal Singh
13年1月1日于20:33
#3 楼
Windows 7包括PowerShell,几乎没有什么可以用PowerShell做的。Windows PowerShell中wget的本机替代品?
评论
(新对象Net.WebClient).DownloadFile('someurl','somepath')
–杰森·斯坦格鲁姆(Jason Stangroome)
11-11-17在2:52
Powershell适用于Powerrangers!那是多么愚蠢,为什么我不知道这到底是什么?再见cmd。
– kaiser
2012-12-10 7:45
来自cmd.exe:powershell-命令“&{iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg}”。在运行提示下也可以使用
– Janus Troelsen
14年6月3日,11:57
是的,没有PowerShell是您无法做的。这是一个真正的图拉特:)
– jcarpenter2
14-10-17在17:36
@JanusTroelsen我的PowerShell版本响应“术语'iwr'不被识别为cmdlet的名称,...”,但经过一些调查后,类似的方法起作用:powershell -command“ $ clnt = new-object System.Net.WebClient ; $ clnt.DownloadFile(\“ https:// host / name \”,\“ outpufilename \”)“
–rogerdpack
15年8月28日在21:01
#4 楼
PowerShell(Windows 8附带和早期版本的.NET附带)具有此功能。powershell
命令允许从命令行或.bat
文件运行任意PowerShell命令。因此,需要以下行:powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://example.com/', 'c:\somefile') }"
评论
@harrymc肯定是答案。它下载一个文件。您还想要什么?
– Janus Troelsen
2014年6月3日,11:55
(1)一些说明该单行代码的文字,(2)验证您的答案不是以前答案的替代提法,因为如果是,则最多应表示为对该答案的评论。
–harrymc
2014年6月3日,12:34
该软件需要什么版本的Windows和PowerShell?
– Peter Mortensen
2014年6月6日18:11
这在Windows Server 2012 FYI中不起作用,它将引发MethodInvocationException
– knocte
16年5月18日在9:41
#5 楼
我找到了一种方法,但实际上只需安装Wget。您可以从命令行(iexplore.exe)使用Internet Explorer,然后输入URL作为参数。因此,运行:
iexplore.exe http://blah.com/filename.zip
无论文件是什么,您都需要指定它不需要提前确认。瞧瞧,它将自动执行下载。所以是的,这在技术上是可行的,但是好主以不同的方式来做。
评论
我知道wget是一种更好的方法,这只是一个假设的问题;)您的答案非常接近,但仍然需要用户干预(单击“保存”,或配置为不显示此对话框)
–罗伯特·马萨(Robert Massa)
09-10-23在15:15
就像我说的那样,您必须取消选择该选项以提示保存该文件类型。例如,下载一个zip文件,禁用该提示,然后将来从命令行访问的所有zip文件将自动保存。
–DHayes
09-10-23在15:17
#6 楼
Windows资源管理器(不要与Internet Explorer混淆)可以通过HTTP下载文件。只需在地址栏中输入URL。或从命令行,例如C:\windows\explorer.exe http://somewhere.com/filename.ext
。,您会看到经典的“文件下载”提示。除非文件是Windows资源管理器知道如何内联显示的类型(.html,.jpg,.gif),否则在这种情况下,您需要右键单击以保存它。
我刚刚在我的Windows XP 2002 SP1原始安装的VMware映像上对此进行了测试,并且工作正常。
评论
这需要用户交互。大多数人可能都不希望从命令提示符下下载文件
–基普
2012年11月14日20:14
如今,它取决于您的默认浏览器。我的是chrome,它会自动下载到已知位置,因此我认为此解决方案足以满足我的需求。谢谢!
–kayleeFrye_onDeck
16年11月2日,下午2:57
#7 楼
您可以使用(在标准Windows bat中):powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }"
似乎需要PowerShell v4 ...
(感谢您的评论)还有这个)
#8 楼
使用FTP。从命令行:
ftp ftp.somesite.com
user
password
等。我记得每个Windows版本都包含FTP。可能不是在3.1中,可能不是在Windows 95中,但肯定是在此之后的所有内容。
@RM:如果您不想下载任何其他工具,那将很困难。有一个用于Windows的命令行Wget,Wget旨在完全满足您的要求。
评论
+1好答案。 ftp非常通用,只要您要从中下载的服务器支持它即可。
– DaveParillo
09-10-23在15:05
谢谢,对不起,我不是更具体,我的意思是使用HTTP。
–罗伯特·马萨(Robert Massa)
09-10-23在15:10
这不适用于大多数FTP服务器,因为此Windows ftp客户端不支持被动模式(在被动模式之间需要NAT)。
– Peter Mortensen
16-4-5在21:04
@PeterMortensen它也无法远程回答问题,因为他对其进行了编辑以指定他在寻找wget功能。但是,不要因为这样而阻止您复活一个7岁的错误答案,而只是添加一些装饰。
–撒旦小狗
16年4月6日在19:32
#9 楼
像这样使用PowerShell:创建download.ps1文件:
param($url, $filename)
$client = new-object System.Net.WebClient
$client.DownloadFile( $url, $filename)
现在您可以下载如下文件:
powershell Set-ExecutionPolicy Unrestricted
powershell -ExecutionPolicy RemoteSigned -File "download.ps1" "http://somewhere.com/filename.ext" "d:\filename.ext"
评论
即使在Windows XP 64位PowerShell 2.0上也可以使用。
– Peter Mortensen
16-4-5在21:13
#10 楼
可以通过以下方法下载文件bitsadmin / transfer wcb / priority high https://sustainabledevelopment.un.org/content/documents/Agenda21.pdf C:\ Program Files(x86)\ Dell Update \ Agenda21.pdf
#11 楼
在Win CMD上(如果您具有写访问权):set url=https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg
set file=file.jpg
certutil -urlcache -split -f %url% %file%
echo Done.
内置于Windows应用中。无需外部下载。
在Win 10上进行了测试
#12 楼
如果安装Telnet,我想您可以向服务器发出HTTP请求以下载文件。还可以安装Cygwin,也可以使用wget下载文件。这是从命令行下载文件的非常简单的方法。
评论
我很确定'cygwin'被视为非标准实用程序;-)
– DaveParillo
09-10-23在15:04
Telnet是一个有趣的选项,有没有一种方法可以在不破坏输出的情况下将输出传递到文件?我们是否可以将HTTP GET命令通过管道传送到telnet以发出请求?
–罗伯特·马萨(Robert Massa)
09-10-23在15:05
安装telnet? Telnet就像ftp;它带有窗户。虽然不知道重定向输出。
–撒旦小狗
09-10-23在15:10
对于XP(默认情况下),telnet是默认安装的,但是我听说在Vista上已经不再是这种情况了?但是,不,它不允许文件下载,除非所有文件都在单个HTTP响应中返回,并且可以剥离标头并在命令行上解码内容。几乎不可能控制这一点。
– Arjan
09-10-23在15:21
为什么要安装cygwin只是为了使用wget?有一个本地的win32二进制文件可用。
– innaM
09-10-23 15:39
#13 楼
在Windows中,可以通过以下几种方式使用命令行下载:可以使用Cygwin。
注意:附带的应用程序不是本机Linux应用程序。如果要在Windows上运行,必须从源代码重建应用程序。
可以使用telnet发出请求,但看不到任何处理。
您可以编写bat或VBS脚本。
编写可以从cmd.exe运行的程序。
#14 楼
您可以在Windows上安装Linux应用程序Wget。可以从http://gnuwin32.sourceforge.net/packages/wget.htm下载。然后,您可以在命令提示符下发出命令“ wget(在此处插入URL)”或任何其他URL,它将允许您下载该URL /文件/图像。评论
奇怪的是,此版本并非始终兼容。在我的Windows 7计算机上不是因为缺少库。您通常希望在没有任何额外库的情况下使用wget。 users.ugent.be/~bpuype/wget
–sinni800
2011年5月16日在12:17
#15 楼
如果您安装了python,则这里有一个示例,该示例从Web上获取get-pip.pypython -c "import urllib; urllib.urlretrieve ('https://bootstrap.pypa.io/get-pip.py', r'C:\python27\Tools\get-pip.py')"
#16 楼
从Windows 10版本17063和更高版本开始,现在包含“ Curl”,因此您可以直接从Cmd.exe或PowerShell.exe执行它。例如:
C:\>curl.exe -V
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: 2017-11-14, security patched: 2019-11-05
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
要下载文件:
curl.exe -O https://cdn.sstatic.net/Sites/superuser/Img/logo.svg
#17 楼
在默认Windows中,您无法通过HTTP下载。 Windows是一个以GUI为中心的操作系统,因此它缺少您在其他操作系统中可以找到的许多命令行工具,例如wget
,它是最主要的选择。System.Net.WebClient.DownloadFile()
,WiniNet
API中的函数,可以下载文件,但我不确定与批处理文件相比,您进入实际开发的距离有多远。评论
我知道可以使用wget,但是我的问题是没有使用非标准的Windows utils。
–罗伯特·马萨(Robert Massa)
09-10-23在15:09
评论
“如果Windows中唯一的浏览器已死,如何连接到Internet?”中的更多想法。在superuser.com/questions/50427/…在这十二种Windows XP版本中,哪一个是呢?
假设它可以是任何Windows XP SP2版本,并且以后都可以发布。
@arjan有趣的问题,但仍然没有确定的答案。
我应该要求“版本”。像Starter,Home,Professional,Media Center,Tablet,甚至甚至是Embedded(我猜那里的工具都有不错的改变!)……或没有Windows Media Player的欧洲版本。 :-)