WSH  WSH2  掲示板  JavaScript,Neo-Generation  DOM  download  表紙
8. DAO  10. ショートカット
Windows Scripting Host 9
コマンドを実行する

スクリプトからコマンドを実行するには、例えば次のようにします。
scripts/startpage.js
---------------------------------------------------
var WShell = WScript.CreateObject("WScript.Shell");
WShell.Run("start http://member.nifty.ne.jp/aya/");
ブラウザが立ち上がり、ここのホームが表示されます。
WshShell.Run(strCommand, [intWindowStyle, [bWaitOnReturn]);
strCommand は実行するコマンドを表す文字列です。
intWindowStyle はウィンドウのスタイルを表す整数値です。
bWaitOnReturn はスクリプトがコマンドの実行を待つかどうかを表すブール値です。

ウィンドウスタイル

intWindowStyle の値によって次のように ウィンドウスタイルが変わります。

0非表示
1通常の大きさ
2最小表示
3最大表示

同期・非同期

bWaitOnReturnfalse または省略するとそのコマンドが終わるのを待たずにスクリプトが進行します。 true なら終わるのを待ちます。

バッチファイルを利用する

次々とコマンドを実行したり、あるいはうまくコマンドが働かないとき、 バッチファイルをスクリプトで作ってそれを実行するという方法があります。 例えば、
var WShell = WScript.CreateObject("WScript.Shell");
WShell.Run("lha32 e a", 1, true);
上はなぜかうまく動かないのですが、下だと動きます(lha32.exeが必要です)。
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var WShell = WScript.CreateObject("WScript.Shell");
var stream = fs.CreateTextFile("a.bat");
stream.WriteLine("lha32 e a");
stream.Close();
WShell.Run("a.bat", 1, true);
コマンドを次々と実行する場合も、 バッチファイルにしたほうが余計なスレッドを発生させない分、 効率がいい場合が多いかと思います。


first, prev, next, noframe, exit
Written 9/1/98