如何在 Windows 中从 wget 或 curl 等命令行下载文件

如何在 Windows 中从 wget 或 curl 等命令行下载文件

怎样才能直接从网络下载某些内容,而无需通过 Internet Explorer 或 Firefox 打开 Acrobat Reader/Quicktime/MS Word/其他程序?

我使用的是 Windows,所以 Windows 版本的获得会做。

答案1

Windows 版 Wget应该管用。

来自Wget 维基常见问题解答

GNU Wget 是一款免费的网络实用程序,可使用 HTTP 和 FTP(两种最广泛使用的 Internet 协议)从万维网上检索文件。它以非交互方式工作,因此可以在注销后在后台工作。

此部分常见问题解答,建议下载链接:

Windows 二进制文件

而是使用 Jernej Simončič 提供的链接。

答案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 对象。

答案3

卷曲

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

电源外壳

# 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

答案4

将以下文本保存为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");
*/

相关内容