【WSH事始め】 CScript とWScript.Echo() は相性抜群

はじめに

 わかっている人はわかってる事柄。コレとコレどう違うの? 存在意義あるの?って思っちゃうだろうなぁって事へ ちょっとした解説を加えます。説明丸投げの各【前提知識】〜 の記事レベルの理解は必要です。

wscript とcscript 

 大雑把に言うとWSHのスクリプトを実行する手段で、エクスプローラ上で ダブルクリックして実行するGUI のwscript.exe と、コマンドプロンプトから実行するCUI のcscript.exe です。

 今時コマンドプロンプトで実行するなんて、と思われますが、悲しい事にWSH は今時のシステムでは無いので、コマンドラインで実行するメリットデメリットが存在します。

 つまりメソッドによって動作が異なるものが存在するという事ですね。

WScript.Echo() のおさらい

 実は丸投げしてて全然説明していませんが、WScript.Echo() はwscript とcscript で動作が異なるメソッドの一つです。

wscriptで実行した時の特徴

・[OK] ボタンが一個ある メッセージボックスっぽい表示を行う。
・[OK] ボタン押下されるまで処理が一時停止する。
・メッセージテキストはコピー出来ない。
・[OK] ボタン押下後はメッセージテキストが廃棄される。

cscriptで実行した時の特徴

・メッセージテキストはコマンドプロンプト上に表示、保持される。
・メッセージ表示後は一時停止せずに後続の処理が続行される。
・メッセージテキストのコピーが出来る。

 以上を踏まえると以下の様に整理出来ます。

wscript とWScript.Echo() の組み合わせのメリット・デメリット

 ケースバイケースで好悪は逆転するので特徴を挙げておきます。

・メッセージボックスを表示して一時停止するので、ブレイクポイントとして使用出来る。
・ループ内で使用すると一々ボタン押下しないと処理が進まない。
・ループの外側と内側の内容確認を交互に行う場合には、ソースコードを一々修正しないといけない。
・スクリプト終了後は閉じたメッセージテキストの確認が出来ない。

cscript とWScript.Echo() の組み合わせのメリット・デメリット

 同じく特徴を挙げると以下の通り。

・一時停止しないで一気に処理終了する。
・コマンドプロンプト上にメッセージテキストが残るので使い捨ての実行ログとなる。

cscriptでメッセージボックスを表示するには Popup() を使う

 ボタンがあるメッセージボックスを表示して、ボタン押下するまで処理が一時停止するメソッドにPopup() があります。

 こちらはwscript とcscript で動作の変わらないメソッドなので上手く組み合わせて使いましょう。



この記事が気に入ったらサポートをしてみませんか?