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 @ 2021-08-13 16:04  Believer007  阅读(16405)  评论(2编辑  收藏  举报