JScript を用いてインターネットのファイルをダウンロードする
またまた JScript ネタです。
今回は、JScript を用いてインターネット上のファイルをダウンロードするスクリプトを作ってみます。
いきなりコードですが、下のようになりました。
// FileName: download.js var args = WScript.Arguments; if (args.Length <= 1) { var emsg = "Usage: cscript download.js ダウンロード対象のURL ダウンロード先フォルダ"; WScript.Echo(emsg); WScript.Quit(1); } var fso = new ActiveXObject("Scripting.FileSystemObject"); var url = args(0); var fname = fso.GetAbsolutePathName(args(1)) + "\\" + fso.GetFileName(url); try { download(url, fname); } catch(e) { var en = e.number & 0xFFFF; WScript.Echo("Error: " + e.description + "(" + en + ") "); WScript.Quit(en); } WScript.Quit(0); function download(url, fname) { var http = newHttpObject(); http.open("GET", url, false); http.send(); if (http.status != 200) { var err = (http.status == 0)? 1 : http.status; throw new Error(err, http.statusText); } var file = new ActiveXObject("ADODB.Stream"); file.Type = 1; file.Open(); try { file.Write(http.responseBody); file.SaveToFile(fname, 2); } catch(e) { throw e; } finally { file.Close(); } file = null; http = null; return; } function newHttpObject() { var http; try { http = new ActiveXObject("Msxml2.ServerXMLHTTP.6.0"); } catch(e) { try { http = new ActiveXObject("Msxml2.ServerXMLHTTP"); } catch(e) { try { http = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { throw e; } } } return http; }
使い方ですが、コマンドプロンプトで下記のように指定して実行してください。
cscript download.js ダウンロード対象のURL ダウンロード先フォルダ
例です。下記を実行すると logo-ns-131205.png が C:\Temp 配下に保存されます。
cscript download.js http://k.yimg.jp/images/top/sp2/cmn/logo-ns-131205.png C:\Temp