スポンサーリンク

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)の手順を間髪入れずにスラスラこなす事ができたらかっこいい。(実用性は微妙か)