VBScriptでRead Eval Print Loop

スクリプト言語とはいえ、ちょっとした動作を確認するのにいちいちファイルにセーブして実行するのはけっこうめんどうだ。Rubyirbみたいに対話形式で実行するツールをVBScriptで作ってみた。

コードは以下参照、1ファイルのみで動くように作ってあるので、このままダウンロードして実行すれば使える。
http://code.google.com/p/vbslib/source/browse/trunk/bin/repl.vbs

repl.vbsの使い方

repl.vbsを実行するとInputBoxを表示する。文や式を入力してOKまたはEnterで実行する。
プロンプトに書いてあるけど、主な使い方は以下のとおり。

  • そのまま入力するか頭にe を付けると文を実行する。
  • 頭にp を付けると式として実行して結果をMsgBoxで表示する。
  • hを入力すると履歴を表示し、h 数値で履歴を参照する。
  • ?でヘルプを表示する。

ヘルプで全コマンドの一覧を表示する。追加で使えるコマンドは以下のとおり。

hh
一つ前の履歴を参照する。
@timeout
現在のタイムアウト(単位はミリ秒)を表示する。
@timeout ミリ秒
タイムアウトを設定する。
@import
ダイアログボックスを表示してファイルを選択し取り込む。
@import ファイル
ファイルを取り込む。
@proc
ユーザが定義したプロシージャの一覧を表示する。
@proc 正規表現
ユーザが定義したプロシージャの一覧を正規表現で絞り込んで表示する。
@reset
インタープリタを初期状態に戻す。

repl.vbsのログ

repl.vbsは実行すると、repl.vbsと同じディレクトリにrepl.logを出力する。repl.logには入力した文・式・コマンドと結果を記録する。長い結果はMsgBoxだと表示が切れるので、そういうときはrepl.logを見ると結果の最後まで確認できる。