バッチ処理に使うのであれば cscript httpget.js "URL" cscript httpget.vbs "URL" 対話で、エラー時にメッセージボックスが出ても良い場合は httpget "URL" ※ URL だけを指定すると、URL の最後をファイル名としてカレントにダウンロード ※ URL の後にパスを指定するとそこへダウンロードです ( httpget "URL" "保存ファイル名のパス" )
JScript : httpget.js
// ****************************
// 初期処理
// ****************************
if ( WScript.Arguments.length == 0 ) {
WScript.Echo( "httpget url [savepath]" );
WScript.Quit();
}
// ****************************
// ダウンロード用のオブジェクト
// ****************************
var http = new ActiveXObject("Msxml2.ServerXMLHTTP")
// ****************************
// 第1引数は URL
// ****************************
var file;
var url = WScript.Arguments(0);
if ( WScript.Arguments.length == 1 ) {
// 第2引数が無い場合は、URL の最後の部分
// ( カレントにダウンロード )
var aData = url.split("/");
file = aData[aData.length-1];
}
else {
// 第2引数がある場合はそれをローカルファイルとする
file = Wscript.Arguments(1);
}
// ****************************
// ダウンロード要求
// ****************************
WScript.Echo( url );
http.open("GET", url, false );
http.send();
try {
} catch (error) {
WScript.Echo( error.description );
WScript.Quit();
}
if ( http.status == 404 ) {
WScript.Echo( "URL が正しくありません(404)" );
WScript.Quit();
}
// ****************************
// バイナリデータ保存用オブジェクト
// ****************************
var stream = new ActiveXObject("ADODB.Stream");
stream.Open();
stream.Type = 1 // バイナリ
// 戻されたバイナリをファイルとしてストリームに書き込み
stream.Write( http.responseBody );
// ファイルとして保存
stream.SaveToFile( file, 2 );
stream.Close
// ****************************
// ファイルの最後
// ****************************
VBScript : httpget.vbs
if Wscript.Arguments.Count = 0 then
Wscript.Echo "httpget url [savepath]"
Wscript.Quit
end if
' *****************************
' ダウンロード用のオブジェクト
' *****************************
Set objSrvHTTP = Wscript.CreateObject("Msxml2.ServerXMLHTTP")
' *****************************
' 第1引数は URL
' *****************************
strUrl = Wscript.Arguments(0)
if Wscript.Arguments.Count = 1 then
' 第2引数が無い場合は、URL の最後の部分
' ( カレントにダウンロード )
aData = Split(strUrl,"/")
strFile = aData(Ubound(aData))
else
' 第2引数がある場合はそれをローカルファイルとする
strFile = Wscript.Arguments(1)
end if
' *****************************
' ダウンロード要求
' *****************************
on error resume next
Call objSrvHTTP.Open("GET", strUrl, False )
if Err.Number <> 0 then
Wscript.Echo Err.Description
Wscript.Quit
end if
objSrvHTTP.Send
if Err.Number <> 0 then
' おそらくサーバーの指定が間違っている
Wscript.Echo Err.Description
Wscript.Quit
end if
on error goto 0
if objSrvHTTP.status = 404 then
Wscript.Echo "URL が正しくありません(404)"
Wscript.Quit
end if
' *****************************
' バイナリデータ保存用オブジェクト
' *****************************
Set Stream = Wscript.CreateObject("ADODB.Stream")
Stream.Open
Stream.Type = 1 ' バイナリ
' 戻されたバイナリをファイルとしてストリームに書き込み
Stream.Write objSrvHTTP.responseBody
' ファイルとして保存
Stream.SaveToFile strFile, 2
Stream.Close
|
|






