Pao*_*sco 355
我最近发现的一个替代方案,使用 PowerShell:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")
Run Code Online (Sandbox Code Playgroud)
它也适用于 GET 查询。
如果您需要指定凭据来下载文件,请在中间添加以下行:
$client.Credentials = Get-Credential
Run Code Online (Sandbox Code Playgroud)
将弹出标准 Windows 凭据提示。您在那里输入的凭据将用于下载文件。在您将使用 $client 对象的所有时间里,您只需要执行一次此操作。
小智 208
Wget for Windows应该可以工作。
GNU Wget 是一个免费的网络实用程序,它使用 HTTP 和 FTP 这两种最广泛使用的 Internet 协议从万维网上检索文件。它以非交互方式工作,因此可以在注销后在后台工作。
从FAQ 的这一部分,建议下载链接:
Windows 二进制文件
礼貌 Jernej Simon?i?: http://eternallybored.org/misc/wget/
来自 sourceforge:http : //gnuwin32.sourceforge.net/packages/wget.htm
[...]
链接由 Jernej Simon 提供?我?改为使用。
Ste*_*nny 138
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
Run Code Online (Sandbox Code Playgroud)
如果您使用的是较旧的 Windows,您仍然可以下载它:
# example 1
Invoke-WebRequest -OutFile index.html -Uri https://superuser.com
# example 2
iwr -outf index.html https://superuser.com
Run Code Online (Sandbox Code Playgroud)
https://docs.microsoft.com/powershell/module/microsoft.powershell.utility/invoke-webrequest
npo*_*aka 72
certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
Run Code Online (Sandbox Code Playgroud)
默认情况下,XP/Win2003 上未安装 Certutil,但可在较新的 Windows 版本上安装。对于 XP/2003,您需要Windows Server 2003的管理工具包
旧答案:
Windows 有自己的命令行下载实用程序 - BITSAdmin:
BITSAdmin 是一个命令行工具,可用于创建下载或上传作业并监控其进度。
这是我如何在没有外部工具的情况下在 Windows 上下载文件的概述
以及一个完整的 bitsadmin 示例:
bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip
Run Code Online (Sandbox Code Playgroud)
小智 34
将以下文本另存为wget.js并简单地调用
cscript /nologo wget.js http://example.com
Run Code Online (Sandbox Code Playgroud)
这是代码:
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");
*/
Run Code Online (Sandbox Code Playgroud)
小智 25
我创建了一个快速的 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
Run Code Online (Sandbox Code Playgroud)
我从Parsing URL for filename with space借用了一些代码。
Gau*_*mar 23
有一个用于Windows提供原生卷曲这里。有许多可用的风格 - 有和没有 SSL 支持。
你不需要Cygwin之类的额外包袱,只需要一个小的 EXE 文件。
了解Windows Powershell 的所有现代版本中都内置了别名wget和curl别名也很重要。它们是等价的。
无需额外的文件或下载即可获得wget功能:
在 Powershell 中使用 Curl(社交极客)
摘抄:
您可以输入 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 上工作。
小智 9
我正在寻找相同的,因为我没有安装上述任何软件包的特权,所以我选择了一个小的解决方法(下载 30 多个文件):
firefox.exe每一行的开头Program Files您还可以使用wgetPowerShell 中的打包文件。;^) 要打开,请按 Windows 键并键入“powershell”或 Windows-R,然后键入“powershell”并按回车键。
无需安装。
与传统的一个有趣的区别wget(更多在那个链接):您不能简单地使用大于号来管道到文件。wget在 PowerShell 中只是一个方便的包装器Invoke-WebRequest,你需要使用它的语法来写入文件。
wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
Run Code Online (Sandbox Code Playgroud)
在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 Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和等效的服务器版本。
如果PowerShell是一个选项,那是首选路线,因为您(可能)不必安装任何额外的东西:
(new-object System.Net.WebClient).DownloadFile('http://www.example.com/file.txt', 'C:\tmp\file.txt')
Run Code Online (Sandbox Code Playgroud)
否则,Wget for Windows,正如其他人指出的那样,绝对是第二好的选择。正如在另一个答案中发布的那样,您似乎可以自己下载 Wget,也可以将其作为Cygwin或MSys的一部分获取。
如果由于某种原因,您发现自己陷入了时间扭曲,使用没有 PowerShell 的机器并且您对工作的 Web 浏览器的访问权限为零(也就是说,Internet Explorer 是系统上唯一的浏览器,它的设置已损坏),并且您的文件位于 FTP 站点上(而不是 HTTP):
start->run "FTP", press "OK".
Run Code Online (Sandbox Code Playgroud)
如果没记错的话,它自 Windows 98 以来就一直存在,我可以确认它在 Windows 8 RTM 中仍然存在(您可能必须进入appwiz.cpl并添加/删除功能才能获得它)。此实用程序可以从网络上的 FTP 站点下载和上传文件。它还可以在脚本中使用以自动执行任一操作。
这个内置的工具在过去对我来说是一个真正的救星,尤其是在 ftp.cdrom.com 的时代——我曾经以这种方式下载过 Firefox,在一台只有拨号上网的完全坏掉的机器上连接(当sneakernet 的最大数据包大小仍然是1.44 MB 时,Firefox 仍然被称为“Netscape” /me do trollface 时)。
一些提示:它是自己的命令处理器,并且有自己的语法。尝试输入“帮助”。所有 FTP 站点都需要用户名和密码;但是如果他们允许“匿名”用户,用户名是“匿名”,密码是你的电子邮件地址(如果你不想被跟踪,你可以自己编一个,但通常有某种逻辑来确保它是有效的电子邮件地址)。
| 归档时间: |
|
| 查看次数: |
1328793 次 |
| 最近记录: |