今まで、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に触れた事のある人なら、先程のプログラムを見て、
alert("ほげほげ");
で書き換えることが出来るんじゃないか?と思う人がいるかと思います。
しかし、alert()とというのはブラウザが実装している機能であり(Windowオブジェクト)、
JScript自体が標準として実装している機能ではないので、この関数を使用するとエラーが発生します。
JScriptの標準機能については、
JScript Reference (>>Microsoft)をご覧下さい。
ちなみにこのリファレンスを見て頂ければ分かるかと思いますが、
prompt()、setTimeout()など利用価値の高い関数が使えなかったりします。
*追記:WSH2.0でsleepメソッドがサポートされました。
WSHでは、WScript.exeが持つWScriptオブジェクトを利用してプログラムの開発を行います。 WScriptオブジェクトの詳細については WSHリファレンス (>>Microsoft) をご覧下さい。
WSHは新しく出来た技術のため、処理速度が遅いなどまだまだ幾つか問題があります。 しかし、WSHのその位置づけから考えるとAppleScriptのように、 これから徐々に広まって行くものと思われます(私感)。