JScriptコンソールの実践的な使い方

以前に書いたJScriptコンソールですが、意外とアクセスがあるようなので、私がやっている実践的な使い方を載せたいと思います。

※(前提)以前に紹介したJScriptのファイルを、console.jsとします。
※(注意)一部のフォルダ・ディレクトリを***とさせていただいております。

ポイントはWSFファイルを作ることです。
私の場合は、(今の段階では)以下のように作っています。


<job id="main">
  <script language="JScript" src="***\CPT.js" charset="Shift_JIS"></script>
  <script language="JScript" src="***\ClassLoader4WSH.js" charset="Shift_JIS"></script>
  <script language="JScript" src="***\JavaScriptDocument.js" charset="Shift_JIS"></script>
  <script language="JScript" src="***\JavaScriptLogger.js" charset="Shift_JIS"></script>
  <script language="JScript" src="***\JavaScriptErrorManager.js" charset="Shift_JIS"></script>
  <script language="JScript">
this.setIncludeBase("***/ClassPackagingTool/");
js.debug.jsd.setIncludeBase("***/JavaScriptDocument/js/debug/jsd/");
js.debug.log.setIncludeBase("***/JavaScriptLogger/js/debug/log/");
js.debug.jsem.setIncludeBase("***/JavaScriptErrorManager/js/debug/jsem/");
include("js.debug.jsd.*", true);
include("js.debug.log.*", true);
include("js.cpt.*", true);
js.cpt.Error.cast2NativeError = true;
include("js.debug.jsem.*", true);
  </script>
  <script language="JScript">
function displayInclude(obj, prefix) {
  if(!obj) {
    write("");
    return arguments.callee((function(){return this;})(), "");
  } else if(!prefix) {
    prefix = "";
  }
  for(var i in obj) {try{
    if(((typeof obj[i]) == "function") && prefix && obj[i].Static) {
      plusln(prefix + i);
    } else if(obj[i] instanceof js.cpt.Class) {
      plusln(prefix + i + " - !");
    } else if(obj[i] instanceof js.cpt.Package) {
      plusln(prefix + i);
      arguments.callee(obj[i], (prefix + i + "."));
    }
  }catch(e){}}
}
  </script>
  <script language="JScript" src="console.js" charset="Shift_JIS"></script>
</job>
これにより、JScriptコンソールが起動する前に、そのコンソールで使用できるクラスやメソッド,変数などを用意しておくことができます。
私はCPTパッケージを使ってJavaScriptDocument,JavaScriptLogger,JavaScriptErrorManagerの各パッケージを読み込み、関数displayIncludeを定義してからJScriptコンソールを起動しています。

また、console.jsもこのWSFファイルもダブルクリックで起動すると(デフォルトでは)WScriptで起動されるのですが、その場合はconsole.jsがCScriptで起動しなおすように作られています。そもそも“コンソール”ですからCScriptで起動する必要があり、WSFファイルの事前準備を無駄にしないためには、WSFファイル自体をCScriptで起動します。
それには、以下のような簡単なバッチファイルで実現できます。


@echo off
CScript //Nologo 上記で作ったWSFファイル
これを実行(ダブルクリック可)すると、万事OKというわけです。