-->

落とすだけのwgetもどきjs

とある事情で、
windows-jscriptだけで動きそうなソースをメモ。
ただ眠気に負けそうなのでテストしていない。
手動で特定サーバに同じパタンurlを投げて、
データを集めるのが面倒な時にいいかと。

/* windows-jscript wget like get */

function touch(fn,data){
 var p = {};
 try{
  p.f = new ActiveXObject('ADODB.Stream');
  p.f.Open();
  p.f.Position = 0;
  p.f.Type = 1;
  if(data){p.f.Write(data)}
  p.f.SaveToFile(fn,2);
 }catch(p.e1){}finally{if(p.f){try{p.f.Close()}catch(p.e2){}}}
}

function urlxfn(url){
 var p = {};
 if(!/^(https?|ftps?|file)/.test(url)){return ''}
 p.a = url.split('/');
 p.s = (p.a[p.a.length-1]|'-'.join(p.a));
 return p.s;
}

function wget(url,fn){
 var p = {};
 p.fn = (fn|urlxfn(url));
 if(!p.fn){return}
 p.comp = false;
 p.x = new ActiveXObject('Microsoft.XMLHTTP');
 p.x.open('get',url,true);
 p.x.onreadystatechange = function(){
  if(4-p.x.readyState){return}
  touch(p.fn, p.x.responseBody);
  p.comp = true;
 };
 p.x.send();
}