wget 下载后不保存文件

wget 下载后不保存文件

所以我目前wget在windows 10 powershell上使用命令来下载各种文件。但是,在测试此命令时,文件实际上并未下载。

例如,假设我想下载一张图像,比如https://picsum.photos/200,我会使用以下命令:

PS C:\Users\myname\Desktop> wget https://picsum.photos/200

它返回一个明显成功的结果:

StatusCode        : 200
StatusDescription : OK
Content           : {255, 216, 255, 224...}
RawContent        : HTTP/1.1 200 OK
                Access-Control-Expose-Headers: Content-Length
                Content-Disposition: inline;filename=""
                Vary: Origin
                Access-Control-Allow-Origin: *
                X-Content-Type-Options: nosniff
                X-XSS-Protection...
Headers           : {[Access-Control-Expose-Headers, Content-Length], [Content-Disposition, inline;filename=""],
                [Vary, Origin], [Access-Control-Allow-Origin, *]...}
RawContentLength  : 31273

此过程完成后,我在桌面上看不到任何新文件。

但是,这段代码确实有效:

wget https://picsum.photos/200 -O image.jpg

那么发生了什么?为什么wget单独下载不了文件?

答案1

Powershell 实现wget不是wget.因此它的行为与 UNIX/Linux 实用程序不同wget

作为指出 由 user4556274 提供,Powershell 使用wgetcurl作为自己的别名Invoke-WebRequest

查看该内容(或Get-Help wget在 Powershell 下运行),可以看出该-O [filename]标志是可接受的缩写-Output [filename],并且它Invoke-WebRequest [URI]实际上返回一个表示网页的对象,而不是编写一个根据 URL 的基本名称命名的文件。

因此,除非您将其分配给变量或通过管道将其传递给另一个命令,否则这将返回“无”:

wget http://example.net/path/to/page.html

但这会“按预期”提供一个网页:

wget http://example.net/path/to/page.html -O page.html

相关内容