Windows Script 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>cscript test.js [n1 n2....]
とすれば、test.js内のスクリプトが実行されるわけです。(n1,n2..は引数です)。 ただ、いちいちコマンドライン上からでもなくても、. 他の実行ファイル同様、jsファイルをダブルクリックすればスクリプトは実行されます。 (その場合は引数を持てないのですが) *追記:WSH2.0でドラッグ&ドロップがサポートされました。

■一番シンプルなプログラム

一番単純なプログラムの作り方をご紹介します。
以下の様なスクリプトを記述し、拡張子.jsを付けて実行してみて下さい。

  WScript.Echo("ほげほげ");

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

■従来までのJavaScriptプログラミングとの違い

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

■WSHオブジェクト

WSHでは、WScript.exeが持つWScriptオブジェクトを利用してプログラムの開発を行います。 WScriptオブジェクトの詳細については WSHリファレンス (>>Microsoft) をご覧下さい。

■最後に

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