VBScriptでWEB上にあるファイルをダウンロードする方法を解説します。
仕組みとしては、「Msxml2.ServerXMLHTTP」でダウンロード要求を行い、「ADODB.Stream」でファイルとして保存するような感じです。
では、ソースコードを解説していきます。
3行目は、ダウンロードファイルのURLになります。サンプルでは[docker]をダウンロードしています。直リンクのみ対応しています。
ここは、インプットボックス(InputBox)を使用してもいいかもしれません。
11行目では、URLからダウンロード後のファイル名を取得しています。
URL最後の[/]以降の文字列をファイル名としています。
15行目は、エラーハンドリングになります。最もエラーが起きやすそうなところに入れています。
24-28行目で、ファイルのダウンロードを行っています。
Option Explicit
' ダウンロードファイルのURL
Const url = "https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz"
Dim http, stream, file, tmp
Set http = CreateObject("Msxml2.ServerXMLHTTP")
Set stream = CreateObject("ADODB.Stream")
' ダウンロードファイル名の取得
tmp = Split(url, "/")
file = tmp(UBound(tmp))
' ダウンロード
On Error Resume Next
Call http.Open("GET", url, False )
http.Send
If(Err.Number <> 0)Then
MsgBox("エラーが発生しました。")
WScript.Quit
end if
' ダウンロードファイルの保存
stream.Open
stream.Type = 1
stream.Write http.responseBody
stream.SaveToFile file, 2
stream.Close
Set stream = Nothing
Set http = Nothing
MsgBox("ダウンロードが完了しました。")
単純にファイルをダウンロードするだけなので、簡単に実装出来ましたね。
このスクリプトを単体で使用するのではなく、部品化して使用すると便利そうです。
コメント