1

我想通过 curl.exe 在 Windows PowerShell 中使用一些 GET 请求来下载几个zip文件,但一些响应正文不是zip,而是包含zip文件链接的json文件。

所以我的原创

$(curl.exe -X GET -H $H1 $requestURL -o "C:\path\filename.zip")

现在需要像

$jsonOrZip = $(curl.exe -X GET -H $H1 $requestURL)

if($jsonOrZip.count > 1000){
  (save $jsonOrZip as a zip file)
} else {
  $requestURL = (extract url from $jsonOrZip string to download zip file)
  $(curl.exe -X GET -H $H1 $requestURL -o "C:\path\filename.zip")
}

条件$jsonOrZip.count > 1000是我用来知道正文响应是zip文件(计数 > 1000)还是json文件(计数 < 1000)的条件

我需要知道如何将 $jsonOrZip 保存为 zip 文件。我确实尝试了以下

$jsonOrZip | Out-File -FilePath 'C:\path\filename.zip'

但我得到一个损坏的zip文件。

我可以解决此问题的另一种方法是重复先前的请求并将其输出为zip文件

$(curl.exe -X GET -H $H1 $requestURL -o 'C:\path\filename.zip')

但我不想两次下载同一个文件(压缩文件是非常大的文件,我有很多要下载)

有没有更合适的功能或其他方法来解决这个问题?

4

0 回答 0