如何在没有Internet Explorer或Firefox打开Acrobat Reader / Quicktime / MS Word /任何文件的情况下直接从Web下载内容?
我使用的是Windows,因此Windows版本的Wget可以使用。
如何在没有Internet Explorer或Firefox打开Acrobat Reader / Quicktime / MS Word /任何文件的情况下直接从Web下载内容?
我使用的是Windows,因此Windows版本的Wget可以使用。
Answers:
Windows的Wget应该可以工作。
GNU Wget是一个免费的网络实用程序,可以使用HTTP和FTP(这两种使用最广泛的Internet协议)从万维网检索文件。它以非交互方式工作,因此在注销后可以在后台进行工作。
从常见问题解答的这一部分,建议下载链接:
Windows二进制文件
由JernejSimončič提供:http ://eternallybored.org/misc/wget/
从sourceforge:http : //gnuwin32.sourceforge.net/packages/wget.htm
[...]
而是使用JernejSimončič提供的链接。
我最近发现使用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对象时,只需要一直执行一次即可。
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
如果您的PowerShell> = 3.0,则可以使用 Invoke-WebRequest
Invoke-WebRequest -OutFile index.html http://superuser.com
或打高尔夫球
iwr -outf index.html http://superuser.com
System.Net.WebClient
。但是,您可以Invoke-WebRequest
通过添加进行工作-UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox
。
wget
或curl -O
,curl --remote-name
或curl -J
?)
Windows有其自己的命令行下载实用程序-BITSAdmin:
BITSAdmin是一个命令行工具,可用于创建下载或上传作业并监视其进度。
编辑:15年1月26日 - 这是我的概述如何无需外部工具即可在Windows上下载文件
还有一个完整的bitsadmin示例:
bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.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.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");
*/
有一个用于Windows提供原生卷曲这里。有很多可用的样式-支持和不支持SSL。
您不需要Cygwin之类的多余包,,只需一个小的EXE文件。
同样重要的是要知道,Windows Powershell的所有现代版本都内置了wget
和curl
别名。它们是等效的。
无需其他文件或下载即可获得wget
功能:
在Powershell中使用Curl(The Sociable Geek)
摘抄:
您可以键入一个cURL命令,例如从GitHub存储库下载文件的命令。
看起来好像可行,但实际上只是使用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上运行。
我制作了一个快速的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
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"
<-在脚本文件硬编码位置和文件名中使用简单的一行powershell。
如果可以使用PowerShell,则这是首选的方法,因为您(可能)无需安装任何额外的东西:
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')
失败的是,正如其他人指出的,Windows的Wget绝对是第二好的选择。如另一个答案中所述,您似乎可以单独下载Wget,也可以将其作为Cygwin或MSys的一部分来获取。
如果由于某种原因,你会发现自己被困在一个时间隧道,使用不具有PowerShell的一台机器和你有零访问工作网络浏览器(即Internet Explorer的系统上唯一的浏览器,它的设置已损坏),并且您的文件位于FTP站点上(而不是HTTP):
start->run "FTP", press "OK".
如果有足够的内存,它从Windows 98开始就已经存在,并且我可以确认它在Windows 8 RTM中仍然存在(您可能必须进入appwiz.cpl
并添加/删除功能才能获得它)。此实用程序既可以在Web上的FTP站点上下载文件,也可以从上载文件到FTP站点。也可以在脚本中使用它来自动执行任一操作。
过去,内置的此工具对我来说是一个真正的救星,尤其是在ftp.cdrom.com的时代-我曾经在完全损坏的只有拨号Internet的机器上以这种方式下载Firefox连接(当sneakernet的最大数据包大小仍为1.44 MB,并且Firefox仍被称为“ Netscape” / me时,返回trollface)。
一些提示:它是自己的命令处理器,并且具有自己的语法。尝试输入“帮助”。所有FTP站点都需要用户名和密码。但是如果他们允许“匿名”用户,则用户名是“匿名”,密码是您的电子邮件地址(如果您不想被跟踪,可以补上一个,但是通常会有某种逻辑来确保它是有效的电子邮件地址)。
C:\tmp\file.tx??t
Cygwin有Wget(还有更多实用程序)。
而且http://www.httrack.com/具有漂亮的GUI(免费),用于镜像站点。它还具有Linux版本。
您也可以使用wget
PowerShell中打包的软件包。; ^)要打开,请按Windows键并键入“ powershell”或Windows-R,然后键入“ powershell”并按回车键。
无需安装。
从传统的一个有趣的差异wget
(更在该链接):你不能简单地用它来管的,大于一个文件。wget
在PowerShell中,它只是的便捷包装Invoke-WebRequest
,您需要使用其语法来写入文件。
wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
-OutFile
做好了!
我认为wget
通过Chocolatey 安装是最简单的方法。
choco install wget
wget
在* nix系统上从命令行使用。/download
在https://lolbas-project.github.io上搜索功能。
现在有Bitsadmin.exe
,Certutil.exe
,Esentutl.exe
,Expand.exe, Extrac32.exe
, Findstr.exe
,Hh.exe
,Ieexec.exe
,Makecab.exe
,Replace.exe
适用于Windows Vista中,Windows 7,Windows 8中的Windows 8.1时,Windows 10和对应的服务器版本。
如果需要GUI,请尝试VisualWget,它实际上很干净,并且功能齐全。它基于GNU Wget的下载引擎。
编辑:更新的链接。
如此SU回答中所述,您可以在Powershell中使用以下内容:
Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext