新しいJavaScriptの使い方を考える このページをアンテナに追加 RSSフィード

2007/02/21(Wed) トンネル生活から抜けられるか

[]JScriptコンソールを進化させてWSHコンソールに。

JScriptだけでなく、VBScriptも使えるWSHのコンソールとなりました。

  1. 特徴
    • JScriptだけでなく、VBScriptも使用可能
      JScriptとVBScriptをネストして起動*1できます。JScript()VBScript()というメソッドがあります。
    • コマンドも簡易的に実行可能(JScript)
      JScript//:cmd DOSコマンドとすると、そのDOSコマンドの実行結果が表示されます。
    • historyの保持,echoとpromptの変更対応
      エラーが発生しなかったコマンドの履歴を保持します。
      また、コマンド入力時に表示されるプロンプトの制御ができます。
    • 複数行コマンドにも対応
      • JScriptの場合
        コマンド蓄積中でないとき、;で終わる文字列の入力はすぐに実行されます。;で終わらない文字列の場合、そのコマンドから蓄積を開始します。
        コマンド蓄積中のとき、;のみの入力で蓄積されたコマンドを実行し、\のみの場合は蓄積を破棄します。それ以外の空白だけでない文字列は蓄積されます。
      • VBScriptの場合
        コマンド蓄積中でないとき、_で終わるか、For,Do,While,If,Select,With,Sub,Function,Classのいずれかで始まる文字列の場合、そのコマンドから蓄積を開始し、そうでない場合はすぐに実行されます。
        コマンド蓄積中の場合、_のみの入力で蓄積されたコマンドを実行し、\のみの場合は蓄積を破棄します。それ以外の空白だけでない文字列は蓄積されます。
    • リダイレクトに代わる機能(JScript)
      JScript()で起動したコンソールは標準入力標準出力標準エラー出力を利用しますが、JScript(入力ストリーム, 出力ストリーム, エラー出力ストリーム)とすることもできます。*2
  2. 構成
    直接起動しないでください。よく内容を確かめてからご自分の責任で実行してください。
    • WshConsole.wsf:下記のconsole.vbsとconsole.jsをこの順でロードしています。通常はこれを起動します。
    • console.vbs:VBScriptのコンソール機能を提供*3しています。単独起動不可*4
    • console.jsJScriptのコンソール機能を提供しています。単独起動も可能です。
  3. オススメ
    • wsfファイルにユーティリティー関数
      既にwrite,writeln,printと私が作ったものを残してあります。
    • バッチファイルで起動
      起動部分はconsole.jsにあり、wscript.exeで起動されていた場合にcscript.exeで起動しなおします。
      なので最初からcscript.exeで起動するバッチファイルを用意すると僅かに起動が速くなります。
      バッチファイルにはCScript //Nologo 起動するファイル*5などと記述します。

【2007/02/23追記】
リダイレクトに代わる」とか言ってしまった機能はほとんど代わりができていない気がします。ここは作ったばかりなので改良の余地が大いにあると思います。
たとえば、「とあるウェブページにある全てのリンクについて、そのタイトルとリンク先とターゲットの一覧をCSVファイルにまとめる」というお題をやってみました。(追記をする前のこのページでやってみました。)
コンソールのキャプチャ画像

*1JScriptからJScriptや、VBscriptからVBScriptも可能

*2:入力ストリームから読み込んだ文字列を実行したら標準入力からの入力を要求する場合、処理が停止し復帰不可能(→Ctrl+C)となります。このような処理は記述できません。

*3:私がVBScriptは得意じゃない&好きじゃないので、JScriptに比べて多少貧弱な機能です。

*4console.jsの冒頭の10行程度を移殖すれば可能と思われます。

*5:現状ではWshConsole.wsfまたはconsole.js

通りすがり通りすがり 2007/05/17 01:46 http://www-2ch.net:8080/up/download/1179333953678193.BjhQ6b?dl

ZIGOROuZIGOROu 2007/10/18 02:10 おー、大体同じような事やってますね。:)
http://moz-addon.g.hatena.ne.jp/ZIGOROu/20070809/1186656628

現在手元の対話コンソールはもう少し進化してますけど。
DB系だとか被ってるんで、色々情報交換して下さい。

MugMug 2007/10/21 00:27 すみません、先ほど気づきました。上記のブログに返信させていただきました。「大体同じような事」知りたいですね〜。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。