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")
}
条件付きは、本文の応答がzipファイル (カウント > 1000) かjsonファイル (カウント < 1000)$jsonOrZip.count > 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')
しかし、同じファイルを 2 回ダウンロードしたくありません ( zipファイルは非常に大きなファイルであり、ダウンロードするファイルが多数あります)。
この問題を解決するためのより適切な機能または別の方法はありますか?