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
單獨不下載文件?
的 Powershell 實現
wget
不是wget
. 所以它的行為不像 UNIX/Linux 實用程序wget
。正如 user4556274所指出
wget
的,Powershell 使用andcurl
作為自己的別名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