3

VBScript を介して HTTP ファイルを ADO バッファにダウンロードするサンプルを数多く見てきましたが、これらのサンプルを微調整して必要なものを処理する方法がわかりません。指定されたバイト位置 x からダウンロードを開始し、n バイトをダウンロードします。これは、次の呼び出しに関係していると思います。

object.Open "GET", "url", asyncValue

上記のコードは、ファイル全体のダウンロードを試みます。これを変更することはできますか、それとも VBScript で必要なものを達成できる別のアプローチがありますか?

4

1 に答える 1

4

を使用してヘッダーXMLHttpRequestを設定します。Range

url = "..."

first = 123
last  = 321

Set req = CreateObject("MSXML2.XMLHTTP.6.0")
req.Open "GET", url, False
req.setRequestHeader "Range", "bytes=" & first & "-" & last
req.Send

If req.Status = 200 Then WScript.Echo req.ResponseText

設定することにより、リモートファイルをチャンクで取得できます

first = iteration * chunksize
last  = first + chunksize

lastまたは、値を省略してファイルの残りの部分を取得できます。

first = 123
last  = ""

リモート ファイルがバイナリの場合、次のようなファイルに保存する必要がある場合があります。

Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 1 'binary
stream.Write req.responseBody
stream.SaveToFile "C:\out.file"
stream.Close
于 2013-04-08T17:38:22.520 に答える