Win版インタラクティブJavaScript

SpiderMonkey で JavaScript のインタラクティブシェル - bkブログ」のWin版です。
以下の内容で「ijs.js」というファイルを作成。

function print(s) {
  WScript.StdOut.Write(s);
}

(function () {
  for(;;) {
    print("js> ");
    var l = WScript.StdIn.ReadLine();
    if (l == "!") {
      var a = [];
      while((l = WScript.StdIn.ReadLine()) != "!") {
        a.push(l);
      }
      l = a.join("\n");
    }
    try {
      var v = eval(l);
      print(v);
      print("\n");
    } catch(e) {
      print("Exception: ");
      print((e instanceof Error) ? e.message : e);
      print("\n");
    }
  }
})()

でもって、コマンドラインから実行。(終了は Ctrl+C)

C:\>cscript ijs.js
js> a = [1,2,3]
1,2,3
js> a.push(4)
4
js> a.unshift(0)

js> a
0,1,2,3,4
js> a.concat([5,6,7])
0,1,2,3,4,5,6,7
js> a
0,1,2,3,4
js> a = a.concat([5,6,7])
0,1,2,3,4,5,6,7
js> a
0,1,2,3,4,5,6,7
js> ^C

C:\>

毎回、cscript と入力するのが面倒であれば、一度コマンドラインで「cscript //h:cscript」とやっておけば、以後、「ijs」とタイプするだけで実行できるようになります。

追記

せっかくTB送ったのに、日記がプライベートモードのままでした…… orz

追記2

拡張してみました。
InteractiveJS その2 - nak2kのメモ帳

InteractiveJS でインタラクティブIEいじり

ijs.js を使ってインタラクティブIEを操作。

js> var ie = new ActiveXObject("InternetExplorer.Application");

js> ie.Visible = true
True
js> ie.navigate("http://www.yahoo.co.jp");

js> ie.document.title
Yahoo! JAPAN
js> ie.document.getElementsByTagName("A").length
269
js>

当然IEだけじゃなくて、"Excel.Application" なんかも操作可能。
ijs.js は勢いで即席で作った割には、色々と使えそうな気がしてきた。外部 js ファイルの読み込みとか機能追加して整理してみるかな。