系统:win10
powershell 版本:5.1(在终端用$psversiontable查看)
wget(Invoke-WebRequest)
windows的powershell中也有跟linux中同名的wget文件下载工具,只不过powershell中的wget是Invoke-WebRequest命令的别名:
# 利用get-alias命令:PS D:\> Get-Alias wget# 输出:CommandType Name Version Source----------- ---- ------- ------Alias wget -> Invoke-WebRequest123456
而且用法也跟linux下的wget不同。如果只是简单的输入命令:
PS D:\> wget https://github.com/lutzroeder/netron/releases/download/v5.7.0/Netron-Setup-5.7.0.exe1
输出的只是解析之后的响应信息以及链接、图像和其他重要 HTML 元素的集合,如:
StatusCode : 200 StatusDescription : OK Content : {77, 90, 144, 0...}RawContent : HTTP/1.1 200 OK Connection: keep-alive Content-MD5: 4cjz+6tF92ipzKzI992N5w== x-ms-request-id: becf9f72-101e-0065-0f37-4e8c21000000 x-ms-version: 2020-04-08 x-ms-creation-time: Mon, 11 Apr 2022 01...Headers : {[Connection, keep-alive], [Content-MD5, 4cjz+6tF92ipzKzI992N5w==], [x-ms-request-id, becf9f72-101e -0065-0f37-4e8c21000000], [x-ms-version, 2020-04-08]...}RawContentLength : 118186480123456789101112
正确用法:
如果要下载文件,需要用命令:
(要注意的是,参数有个是Uri,是Uniform Resource Identifier的缩写,而不是常见的url)
PS D:\> wget -Uri https://github.com/lutzroeder/netron/releases/download/v5.7.0/Netron-Setup-5.7.0.exe -OutFile ./Netron-Setup-5.7.0.exe# -OutFile后面是下载文件保存的位置12
另外,wget还有很多不错的功能,比如,分析一个网页中的所有链接:
PS D:\> (wget -Uri "https://ustc.edu.cn").Links.Href# 会输出:http://wlkt.ustc.edu.cn http://zsb.ustc.edu.cn http://aga.ustc.edu.cn/ zxss.htm http://en.ustc.edu.cn/......12345678
官网文档有更详细的介绍,见参考部分。
附注
如果想要在windows中使用类似linux的wget工具,可以到sourceforge中下载。用法跟linux里的一样
WebClient
简单的使用方法如下:
PS D:\> $download = [System.Net.WebClient]::new()# 或者是:PS D:\> $download = New-Object System.Net.WebClient 然后是下载文件:# 方法是:$download.DownloadFile('path1', 'path2')PS D:\> $download.DownloadFile('https://github.com/apache/tvm/blob/main/README.md', 'd:\readme.md')123456
需要注意
的是,这种方法中,路径都需要加上英文符号’或者是",而wget可加可不加;
另外,如果在存储路径,即path2中没有相对路径或者绝对路径的话,会默认下载到用户路径里:c:\users\name
遇到的问题
以上方法有时候下载下来的只是网页信息。比如,从github仓库里下载一个单独的文件,但最后保存的却是整个页面的html信息:
PS D:\> wget -Uri https://github.com/apache/tvm/blob/main/README.md -OutFile readme.md# 或者是:PS D:\> $download.DownloadFile('https://github.com/apache/tvm/blob/main/README.md', 'd:\readme.md')123
这些方法下载下来的虽然名字都是.md格式的文件,但是内容却都是网页信息:
<!DOCTYPE html><html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" > <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com">......1234567891011
在下载.onnx格式的文件的时候出现的也是同样的问题。主要是github仓库里面的文件点击之后不会直接下载,而且先有个预览网页,如需下载还要手动点击:
而且download的链接就是此预览网页的地址,所以最后下载下来的只是此网页的信息。
参考:
microsoft官网文档:Invoke-WebRequest
WebClient Class
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5184.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~