JavaScript をコマンドラインで実行する方法 (mshta.exeの使い方)
問
JavaScriptで,100以下の素数を列挙するコードを作成し実行しなさい。ただし
- 1ミリでもマウスポインタを動かしてはいけません。
- 1バイトでも新規ファイルを作成してはいけません。
さあ,どうぞコーディングを始めて下さい。(制限時間1分)
mshta.exeを使う。DOS窓はショートカットキーで呼び出す。
(1) Windowsキー + R を押下
「ファイル名を指定して実行」のダイアログが現れる。
Windowsキーが無ければ,Ctrl + Escを押したあとで R を押下。
(2) cmd と入力
コマンドプロンプトが現れる。
(3) コマンドラインに下記のコードを入力
mshta "javascript:L:for( i = 2; i <= 100;i++ ){ for( j = 2; j < i; j++ ){ if( i % j == 0 ) continue L; } alert( i ) } close()" (↑1行で入力する。)
素数が2から97まで順番にアラート表示される。
解説
Windowsのコマンドラインから,JavaScriptを直接入力し実行できる。
mshta.exe "javascript:〜〜"
〜〜の部分にコードを書く。
(HTAのウィンドウを閉じるためには,最後にclose();を付ける。)
VBScriptの場合は
mshta.exe vbscript:Execute("〜〜")
とする。(末尾は close: )
その他使い方は下記サイトが大変詳しい。
Windows Script Programming
http://scripting.cocolog-nifty.com/bl...
これなら,batファイルからJavaScriptを実行することができる。(WSHでバッチを組んだ方が便利かもしれないが)
また,Rhinoを使う手もある。
JDKを入れればコマンドプロンプトでJavaScriptを実行できます
http://d.hatena.ne.jp/jyukutyo/200804...
冒頭のコーディングができると,もしもの時に役立つかもしれない。「もしも」と言うのは,例えば,
- ハードディスクの空き容量が完全に底をつき,なおかつマウス端子が壊れたのだが急に素数を求めたくなった
というような時だろうか……。
あるいは,パフォーマンスとしてはわりと意表を突くと思う。
(1)〜(3)の手順を間髪入れずにスラスラこなす事ができたらかっこいい。(実用性は微妙か)