windows powershell下载文件的4种方式
在windows下使用powershell自带命令下载文件时有以下4种方式:
- Invoke-WebRequest
- Invoke-RestMethod
- Start-BitsTransfer
- System.Net.WebClient
前提,需要powershell 5.1(win10默认就是)
实验,在同一台机器(5G 400Mbps)上下载同一个文件(123MB),查看异同
一、Invoke-WebRequest
可以下载http,https,ftp资源
使用: Invoke-WebRequest -Uri <source> -OutFile <destination>
可以看出,在下载过程中,程序是先读取至内存中的,全部读取完后再写入文件,在读取过程中,文件大小为0
我们再看看下载时长:
1分15秒
二、Invoke-RestMethod
和RestWebRequest类似,区别在于RestMethod支持json和XML内容的代码,会尝试适当的解码器来读取,不支持HTML
使用: Invoke-RestMethod -Uri <source> -OutFile <destination>
再看看时长:
1分31秒
三、Start-BitTransfer
这是windows自带的一个程序, 支持断点续传、下不同文件等,有需要的可以查看后面的参考链接
使用: Start-BitsTransfer -Source $source -Destination $destination
下载过程
与上面不同的是,下载前会先占用磁盘大小,生成tmp文件
时间:
1分35秒
四、System.Net.WebClient
使用:(new-object System.Net.WebClient).DownloadFile('src_url', 'dst_file'))
时长
综上:4种方式下载文件在时间 长差距不大,所以根据所需选用
参考文档:
https://adamtheautomator.com/powershell-download-file/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架