我想通过 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')
但我不想两次下载同一个文件(压缩文件是非常大的文件,我有很多要下载)
有没有更合适的功能或其他方法来解决这个问题?