如何在没有Internet Explorer或Firefox打开Acrobat Reader / Quicktime / MS Word /任何文件的情况下直接从Web下载内容?

我正在使用Windows,所以Windows版本的Wget可以使用。

评论

只需右键单击文件,然后单击“目标另存为”或“链接另存为”或“另存为”(语言因浏览器而异)即可。

使用命令的目的是能够随时编写批处理文件并运行它(可能是作为任务计划的)。这就是GUI不足的地方。

如何使用MS Word下载?

@JaimeHablutzel为什么您要通过MS Word下载某些内容? MS Word不是终端。

@SDsolar或只是在下面投票/改善此答案。

#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 楼

cURL
Windows 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的所有现代版本中都内置有wgetcurl别名。它们等效。

不需要额外的文件或下载即可获得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.exeCertutil.exeEsentutl.exeExpand.exe, Extrac32.exeFindstr.exeHh.exeIeexec.exeMakecab.exeReplace.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的可视化发布,这是一个。
您可以使用它发布数据或文件。