昨日のブログで、WSHが wscript.exe や cscript.exe により
実行されているところまでわかった。
これらはデフォルトでも、VBScript と JScript という
2つの言語に対応しているのだが、
果たして どうやってそれらを見分けているのだろうか。
解析するために、簡単な実験を行ってみた。
実験の準備として、
「Jtest.js」という名前を付けて
WScript.echo("Hello World!");
「Vtest.vbs」という名前を付けて
WScript.echo "Hello World!"
という2つのファイルを準備した。
これくらい短いプログラムでは、
違いとしては、関数の引数を括弧で囲むかどうかぐらいだ。
上記2つのファイルを ウィンドウズ・エクスプローラーから
ダブルクリックすると、エラーもなく、「Hello World!」が表示される。
当たり前だが 全く同じ結果となる。
次に、それぞれのファイルの拡張子を
「Jtest.js」を「Jtest.vbs」に、
「Vtest.vbs」を「Vtest.js」に変更してみる。
前述と同じように、ウィンドウズ・エクスプローラーから
ダブルクリックして、これら2つのファイルを実行してみると、
「Jtest.vbs」を実行させると
「Microsoft VBScript compilation error」というエラー表示が、
「Vtest.js」を実行させると、
「Microsoft JScript compilation error」というエラー表示になった。
このことから、wscript.exe や cscript.exe は
引数として与えられた実行ファイルの拡張子を見て、
どの言語として処理するべきかを判断していると
考えられる。
また、ついでに実験してみると、
「.js」の代わりに「.jse」、
「.vbs」の代わりに「.vbe」は利用できるようである。
カテゴリー:
プログラミング
22:26
| コメント (0)
| トラックバック (0)