SQLの窓

2020年11月15日


JScript / VBScript : WEBのファイルをコマンドラインからダウンロードするスクリプト

バッチ処理に使うのであれば
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





posted by lightbox at 2020-11-15 21:32 | WSH JScript | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり