windows powershell下载文件的4种方式

在windows下使用powershell自带命令下载文件时有以下4种方式:

  1. Invoke-WebRequest
  2. Invoke-RestMethod
  3. Start-BitsTransfer
  4. 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/

 

posted @   Believer007  阅读(17254)  评论(3编辑  收藏  举报
编辑推荐:
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示