我正在使用Windows,所以Windows版本的Wget可以使用。
#1 楼
适用于Windows的Wget应该可以使用。使用HTTP和FTP的Web,这是两种使用最广泛的Internet协议。它以非交互方式工作,因此在注销后可以在
后台进行工作。
在FAQ的此部分中,建议下载链接:
Windows二进制文件
由JernejSimončič提供:http://eternallybored.org/misc/wget/ .sourceforge.net / packages / wget.htm
[...]
而是使用JernejSimončič提供的链接。
评论
如果您更喜欢gui,也可以使用Winwget cybershade.us/winwget
–
09年8月19日在11:47
可从此链接下载独立版本。
–Vito Gentile
2014年2月24日在11:19
由JernejSimončič提供的更新的Windows版本(截至今天)
–Gras Double
2015年2月16日19:37
@cixelsyd已更新链接到替代源。
–user109256
15年11月21日在11:11
eternallybored.org/misc/wget/在我的系统上被企业防病毒标记。炭黑/位9。可能是假阳性。但是sourceforge一个运行。不支持sslv3。
– TamusJRoyce
18年1月12日下午5:22
#2 楼
我最近使用PowerShell发现的一种替代方法:$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")
它与GET查询也能很好地配合。
如果需要指定凭据来下载该文件之间添加以下行:
$client.Credentials = Get-Credential
将弹出标准Windows凭据提示。您在此处输入的凭据将用于下载文件。使用$ client对象时,只需要一直执行一次即可。
评论
您也可以单行执行:(新对象System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
–schellack
2011年10月14日在20:32
@Rob powershell内置于Windows中...
–nhinkle
2012年12月14日下午4:22
从Vista开始,是的。
–阿兰
2012-12-19 12:44
@ BrainSlugs83,绝对,但是很多很多人仍在使用XP。这只是要记住的事情。
–阿兰
13年5月7日在8:08
@ BrainSlugs83,您低估了仍在旧Windows系统上的人数。我不明白这个问题,我指出这仅适用于Vista以上版本。人们可以选择忽略它,或者说“嘿,谢谢!”,但是您....?如果您有问题,请进行聊天,我们可以进行交谈。代表rep的人(例如您)应该意识到这里不是进行此讨论的地方。
–阿兰
13年4月4日在21:17
#3 楼
cURLWindows 10包含
curl.exe
:https://techcommunity.microsoft.com/t5/containers/-/ba-p/382409
,因此您可以执行以下操作:
# example 1
curl.exe --output index.html --url https://superuser.com
# example 2
curl.exe -o index.html https://superuser.com
如果您使用的是旧版Windows,仍可以下载:
https://curl.haxx .se / windows
PowerShell
# example 1
Invoke-WebRequest -OutFile index.html -Uri https://superuser.com
# example 2
iwr -outf index.html https://superuser.com
https://docs.microsoft.com/powershell/module/microsoft .powershell.utility / invoke-webrequest
评论
与System.Net.WebClient相反,它不适用于sourceforge(可能还有其他站点)上的重定向。但是,您可以通过添加-UserAgent [Microsoft.PowerShell.Commands.PSUserAgent] :: FireFox使Invoke-WebRequest工作。
– Ela782
16年1月7日,12:22
Powershell部分是唯一在Server 2016核心模式下工作的部分。请注意,您需要指定安全协议,例如stackoverflow.com/a/48030563/350580,以使https实际上起作用
–陈定义
9月28日下午6:34
#4 楼
Windows有其自己的命令行下载实用程序-BITSAdmin:BITSAdmin是一个命令行工具,可用于创建下载
或上载作业并监视其进度。
编辑:26.01.15-
这是我的概述,如何无需外部工具即可在Windows上下载文件
以及完整的bitsadmin示例:
bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:mb.zip
编辑:15.05.2018-原来也可以使用certutil下载文件:
certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
XP / Win2003上默认未安装Certutil,但在Windows新版本中可用。对于XP / 2003,您需要Windows Server 2003的管理工具包。
评论
有趣。与wget相比,这是一个笨拙的软件。
–马特H
2012年3月28日在21:36
请注意,它不是Windows XP附带的,也可能不是其他版本附带的。
–伊恩·邓恩
2012年5月22日23:06
更新:BITSAdmin已弃用,并且不能保证在以后的Windows版本中可用。 BITS PowerShell cmdlet现在提供了BITS服务的管理工具。
–nulldev07
2012年9月28日下午5:49
@MattH:因为一开始就不需要wget吗? -请参阅en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service
–peterchen
2013年9月27日在12:17
无法添加文件-0x80070057
–TomášZato-恢复莫妮卡
16年4月26日在17:55
#5 楼
将以下文本另存为wget.js
,只需调用cscript /nologo wget.js http://example.com
这是代码:
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);
/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/
评论
该脚本使用哪种语言?对我当前的任务很有用。我想找到更多参考文档。看起来不太像vb
– G-。
2014年5月30日14:54
对于单个文件有用。需要增强递归下载和https。
–opticyclic
2014年11月26日19:07
@G-。我参加聚会很晚,但这就是JavaScript。
–校对者
2015年10月21日在20:52
我试图为database.clamav.net/daily.cvd做到这一点,但它仅下载了44MB的88kB :(
– kokbira
17-10-10在16:27
#6 楼
我制作了一个快速的myGet.bat文件,该文件调用了上述的PowerShell方法。@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP
我从解析URL借了一些代码来获取带空格的文件名。
评论
为什么要下票?这在我看来还可以,是对问题的直接回应。是的,它笨拙并且可以使用改进,例如在网址中转义“&”号,但它仍然可以正常工作。
–马特·威尔基
13年4月24日在5:02
只编写PowerShell脚本会不会更容易???
– SamB
19-2-26在23:12
powershell.exe-命令“ Invoke-WebRequest -OutFile ./file-name https:// location / file-name” <-在脚本文件硬编码位置和文件名中使用简单的一行powershell用法。
–詹姆斯·埃比(James Eby)
19年6月20日在20:58
#7 楼
这里有适用于Windows的本地cURL。有很多可用的样式-支持和不支持SSL。您不需要Cygwin之类的多余包,,只需要一个小EXE文件。 Windows Powershell的所有现代版本中都内置有
wget
和curl
别名。它们等效。不需要额外的文件或下载即可获得
wget
功能:在Powershell中使用Curl(可社交的怪胎) :
您可以键入cURL命令,如从
GitHub存储库下载文件的命令。
curl http:// raw。 githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json
虽然它看起来可以工作,但实际上它只是使用cURL作为别名。在上述情况下,将发生的事情是
,您将只获取标头而不是文件本身。
PowerShell中的别名允许您为更长的命令创建快捷方式,因此您不必一直输入它们。
如果键入命令Get-Alias,它将为您提供PowerShell中使用的所有别名的列表。如您所见,curl命令仅调用Invoke-WebRequest命令。它们相似但不相同,这就是上述要求对我们不起作用的原因。
要使其在PowerShell中最简单地正常工作方法是使用变量和
-OutFile
参数,如下所示:(文件名在图像“ https://raw.githubusercontent。 com / Azure / azure-quickstart-templates / master / mongodb-on-ubuntu / azuredeploy.json”)
此语法会将目标文件
azuredeploy.json
的全部内容下载到本地文件newfile.json
主要优点是它内置在Powershell本身中,因此该代码无需下载即可直接执行,或者需要任何其他额外的文件创建才能使其在任何现代版本的Windows上运行。
评论
可以直接在一行上完成此操作,但是该行会很长,一眼便无法立即读取。
– SDsolar
17年11月15日在18:48
#8 楼
我一直在寻找相同的产品,并且由于没有特权安装上述任何软件包,因此我寻求了一个小解决方法(下载30个以上的文件):我创建了一个批处理文件
列出所有文件
在每行的开头放置
firefox.exe
进入
Program Files
中的firefox目录运行它。
#9 楼
您还可以使用PowerShell中打包的wget
。 ; ^)要打开,请按Windows键并键入“ powershell”或Windows-R,然后键入“ powershell”并按Return。无需安装。
一个有趣的与传统
wget
的区别(更多信息,请参见链接):您不能简单地使用大于号将其管道传输到文件。 PowerShell中的wget
只是Invoke-WebRequest
的便捷包装,您需要使用其语法来写入文件。wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
评论
-OutFile完成了任务!
– Dimitry K
17年11月15日在15:59
#10 楼
如果可以使用PowerShell,则这是首选的方法,因为您(可能)不必安装其他任何东西:(new-object System.Net.WebClient).DownloadFile('http://www.example.com/file.txt', 'C:\tmp\file.txt')
失败了,正如其他人指出的,Windows的Wget绝对是第二个最好的选择。如另一个答案中所述,您似乎可以单独下载Wget,也可以将其作为Cygwin或MSys的一部分进行下载。
如果由于某种原因,发现使用计算机陷入时间扭曲没有PowerShell且您对正常工作的Web浏览器的访问权限为零(即Internet Explorer是系统上唯一的浏览器,并且其设置已损坏),并且您的文件位于FTP站点上(而不是HTTP) ):
start->run "FTP", press "OK".
如果内存可用,它自Windows 98以来就已经存在,我可以确认它在Windows 8 RTM中仍然存在(您可能必须进入
appwiz.cpl
并添加/删除功能才能获取它) )。此实用程序既可以在Web上的FTP站点上下载文件,也可以将文件上载到FTP站点。也可以在脚本中使用它来自动执行任一操作。过去,内置的此工具对我来说是一个真正的救星,尤其是在ftp.cdrom.com时代-我下载了Firefox一次,是在一台只有拨号Internet连接的完全损坏的机器上(sneakernet的最大数据包大小仍为1.44 MB,而Firefox仍被称为“ Netscape” / me确实是trollface)。
提示:它是自己的命令处理器,并且具有自己的语法。尝试输入“帮助”。所有FTP站点都需要用户名和密码。但是如果他们允许“匿名”用户,则用户名是“匿名”,密码是您的电子邮件地址(如果您不想被跟踪,则可以添加一个,但是通常会有某种逻辑来确保它是有效的电子邮件地址)。
评论
+1考虑命令行ftp!但是,在您加入聚会之前,都很好地提到了wget和powershell,因此在这里为-1。 :-/
–马特·威尔基
13年4月24日在5:08
我看到的其他powershell答案都是多行代码和/或有一些代码味道-这是下载文件的简短简便代码。 -我也想提供一个涵盖所有基础的答案。 :-)
– BrainSlugs83
16 Jan 12'在0:20
我不确定为什么在目标文件C:\ tmp \ file.tx ?? t中有两个问号
– Ploni
18年2月7日在23:44
@Ploni我也不知道为什么-我不知道那里是否有Unicode符号...-不幸的是我无法更新答案(它抱怨我使用xyz.net作为域,这很烂...)。
– BrainSlugs83
7月24日下午2:58
#11 楼
Cygwin有Wget(还有更多实用程序)。#12 楼
在https://lolbas-project.github.io上搜索/download
函数。现在有
Bitsadmin.exe
,Certutil.exe
,Esentutl.exe
,Expand.exe, Extrac32.exe
,Findstr.exe
,Hh.exe
,Ieexec.exe
,Makecab.exe
,Replace.exe
Windows 7,Windows 8,Windows 8.1,Windows 10和等效的服务器版本。#13 楼
而且http://www.httrack.com/具有漂亮的GUI(免费),用于镜像站点。它还具有Linux版本。#14 楼
您可以在此处获取Windows的WGet。或者,您可以右键单击要下载的项目的下载链接,然后选择另存为。这将下载文件,而不会在分配的应用程序中打开它。#15 楼
我认为通过Chocolatey安装wget
是最简单的方法。安装Chocolatey
从命令行键入:
choco install wget
然后,您可以像在* nix系统上一样从命令行使用
wget
。#16 楼
在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上进行了测试
评论
您能告诉我该文件保存到哪里吗?
–希望
7月12日23:29
下载内容将保存到变量%file%指向的文件中
–金巴
7月15日17:13
#17 楼
在Windows中,还可以使用Linux终端仿真器,例如MobaXterm或WSL2。两者的过程类似,不同之处在于安装过程。
对于MobaXterm,这是过程:
下载并安装MobaXterm(家庭版可能足以满足您的使用情况)。
通过打开终端并访问MobApt(MobaXterm程序包管理器)。运行
MobApt
。找到软件包
wget
并按Install/Update
(假设它仍未安装)。然后运行您的脚本(我将在底部留下一个可以运行的wget脚本的示例)。
对于WSL2,这是以下过程:
安装WSL2(https://docs.microsoft.com/zh-cn/windows/wsl/install-win10)。我正在使用Ubuntu 18.
设置完成后,打开并运行以下命令:
sudo apt-get install wget
然后运行您的脚本(我将在底部留下一个可以运行的wget脚本的示例)。
在两种情况下都可以使用此脚本:
wget --header='Accept-Language: en-US,en;q=0.9,pt-PT;q=0.8,pt;q=0.7,de;q=0.6,fr;q=0.5,es;q=0.4,it;q=0.3,gl;q=0.2,hu;q=0.1' --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36" -c "http://..." -w 1
#18 楼
如果需要GUI,请尝试VisualWget,它实际上很干净,并且功能齐全。它基于GNU Wget的下载引擎。编辑:更新的链接。
评论
这是更新的链接:sites.google.com/site/visualwget/…(下载位于页面底部,使用右侧的小箭头)
–芦苇树篱
2012年5月13日12:43
#19 楼
如此SU回答中所述,您可以在Powershell中使用以下内容:Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
#20 楼
使用gnuwin32的替代方法是unxutils,其中包括wget。评论
您可以使用unxutils进行管理,但是它很旧,它使用了旧版本的wget。 gnuwin32是要使用的东西。虽然安装起来不太方便,查找起来也不容易,但是它比unxutils还具有更多的功能。
– barlop
2011年10月5日19:31
#21 楼
如果您需要用于Windows的可视化发布,这是一个。您可以使用它发布数据或文件。
评论
只需右键单击文件,然后单击“目标另存为”或“链接另存为”或“另存为”(语言因浏览器而异)即可。使用命令的目的是能够随时编写批处理文件并运行它(可能是作为任务计划的)。这就是GUI不足的地方。
如何使用MS Word下载?
@JaimeHablutzel为什么您要通过MS Word下载某些内容? MS Word不是终端。
@SDsolar或只是在下面投票/改善此答案。