Windows Scripting Host 入門編

このドキュメントはJavaScriptについて知識があるという前提で書かれています。
■はじめに

今まで、JavaScriptはブラウザ上で実行するものだったため、 HTMLの中にスクリプトを書いていました。 しかし、WSHプログラムはWindowsの他のアプリケーションと同様にデスクトップ上で実行するものの為、 今までと違いテキストファイルに直接スクリプトを記述し、.jsという拡張子を付けます。 そして、そのファイルをデスクトップ上で直接実行するわけです。 もちろん、<SCRIPT>タグを書く必要がないわけです。
WSHで利用出来る言語は、現在のところJavaScript(JScript)とVBScript(拡張子.vbs)などがありますが、 ここでは当然JavaScriptを使用して説明させて頂きます。

なお、WSHプログラムを動かすにはOSがWindows98以上であるか、 もしくはWindows95やWindowsNT4の場合に、Microsoftのサイトから WSHエンジンをダウンロードし、 インストールする必要があります。 (*この場合はInternetExplorer3.0以上がインストールされている必要があります)


■プログラムの実行
WSHプログラムは、WScript.exe、又はCScript.exeを使い実行します。 例えば、test.jsというファイルがあった場合、コマンドライン上で、
 DIR>wscript test.js [n1 n2....] とすれば、test.js内のスクリプトが実行されるわけです。(n1,n2..は引数です)。 ただ、いちいちコマンドライン上からでもなくても、.jsファイルをダブルクリックでもすれば スクリプトは実行されます。(その場合は引数を持てないのですが) *追記:WSH2.0でドラッグ&ドロップがサポートされました。


■とりあえず作ってみる
以下の様なスクリプトを記述し、拡張子.jsを付けて実行してみて下さい。
<< test.js >>

WScript.Echo("ほげほげ");
上のスクリプトを実行すると、ダイアログが現れて「ほげほげ」と出力されます。 (WScript.Echo()は標準出力の関数です。 コマンドライン上でCScriptを用いて実行した場合はコンソール内に標準出力されます。)


■今までのJavaScriptプログラミングとの違い
さて、多少JavaScriptに触れた事のある人なら、 上のプログラムを見て、
alert("ほげほげ");
で書き換えることが出来るんじゃないか?と思う人がいるかと思います。 しかし、alert()とというのはブラウザが実装している機能であり(Windowオブジェクト)、 JScript自体が標準として実装している機能ではないので、 この関数を使用するとエラーが発生します。 JScriptの標準機能については、 JScript Reference (>>Microsoft)をご覧下さい。 ちなみにこのリファレンスを見て頂ければ分かるかと思いますが、 prompt()、setTimeout()など利用価値の高い関数が使えなかったりします。
*追記:WSH2.0でsleepメソッドがサポートされました。


■WSH Object
WSHでは、 WScript.exeが持つWScriptオブジェクトを利用して作ります。 WScriptオブジェクトについては WSHリファレンス (>>Microsoft) をご覧下さい。


■最後に
WSHは新しく出来た技術のため、処理速度が遅いなどまだまだ幾つか問題があります。 しかし、WSHのその位置づけから考えるとAppleScriptのように、 これから徐々に広まって行くものと思われます(私感)。

[ Back ]