WindowsOSScript


 
MSDOSのバッチファイル
 

 MSDOSがPCの標準だった頃、パソコンの環境設定はAUTOEXCEC.BATを操作していた。パソコンが立ちあがる時に自動で環境設定をする指示書がAUTOEXCEC.BATだった。作業の途中で環境を変えるにはコマンドラインから別のBATファイルを実行した。このバッチファイルは何だったのでしょう。
 真っ黒な画面を前にしてキーボードからコマンドを打ち込む。そのコマンドラインの内容を事前にファイルに書いておいた。それがバッチファイルだったはずです。

 真っ黒な画面を前にして、といった風景はオフィスでは見かけなくなりましたが、Windowsにはその環境が保存されています。DOSプロンプトといいます。C:\WINDOWS\COMMAND.COM。これがDOSプロンプトの正体です。Explorerでこれを探し、ダブルクリックで小さな黒い窓が開きます。これがDOSプロンプです。
 「メモ帳」の正体はC:\WINDOWS\NOTEPAD.EXEです。キーボードからNOTEPADと打ち込みenterで「メモ帳」が開きます。
NOTEPAD test.txt
としたら、test.txtを読込んで開きます。test.txtが読込まれない場合があります。確かにtest.txtは作ったのに.......そんな場合はPathを確認します。

 もう忘れかけたテクニックです。何度もキーボードに打ち込んでいるといやになります。F3が前のコマンドの呼び出しでした。....dodkey。これがないと、とても辛かった。.................


 どうして忘れかけたテクニックを思い出しているか。それは、CADのスクリプトを自動実行したいからです。20枚の図面に8個のスクリプトがあったとしましょう。部屋の片隅に使わないパソコンが1台。黙ってスクリプトをこなすマシーンがあれば、遅くていいんです。朝始めた作業が退社前に出来ていればいいんですから。次のスクリプトをセットして帰宅します。翌朝終っていれば、ご苦労さ様、ありがとうと僕は言います。

 DOSのバッチは原理的には使えます。でも、今の環境に合わせる必要があります。8文字だったファイル名の制約がなくなり、今では漢字混じりの長いデイレクトリ名を使っています。この辺の環境整備は大変です。
 DOSからWindowsに変わり、一番の違いはなんでしょう。1台に一つのアプリケーションがDOSの前提でした。Windowsはメモリーの許す限り、複数のアプリケーションが同時に動いています。お互い通信もしています。WindowsOSはそのプラットホームです。では、このプラットホームのバッチファイルを使いましょう。

 
WSH
 

 WSH ( Windows Scripting Host )はWin98で採用されました。
C:\WINDOWS\wscript.exeがその正体です。確認してみよう。

 Windowsでは、コマンドのマクロではなく、JScriptでコードを書けます。WebクリエーターのjavaScript資産が横滑りで活用できます。当然マイクロソフトWindowsOS限定ですけど。

 javaScriptで記述した手順のページを拡張子JSで保存すれば、そのファイルをダブルクリックで作業を自動実行します。Windows版バッチファイルです。

 拡張子JSのスクリプトファイルがエクスプローラ上でダブルクリックされると、関連づけに従ってその内容はwscript.exeというスクリプティングホストに渡され、スクリプティングホストは、ActiveX Scriptingに従ってJScriptのスクリプトエンジンを呼び出す。同時に、オートメーションコントローラーとして、各アプリケーションが提供するActiveXコントロールを制御します。

 
WSHの持っている機能
 

 WSHの部品はメッセージボックスとインプットボックスだけで素っ気無いのですが、次ぎのような機能があります。
  • テキストファイルの読込み・書込みができる。
       テキストファイルの作成・読込み・追加書き込みができる。ただし、シーケンシャルアクセス。
  • レジストリの書換えができる。
       あらかじめ対象とするキーを知っていれば、レジストリの値を読んだり書き込んだり削除したりが自由に出来る。
  • ActiveXコントロールを呼び出せる
       アプリケーションがその機能の一部を他のアプリケーションに提供するActiveXコントロールを利用できる。Excelなどの操作が可能。
  • ウィンドウにキーコードが送れる(WSH2.0)
       任意のウィンドウに、キーコード(キーを押したという情報)を送ることができます。これによって、キーボードで操作できる、アプリケーションを自動化することが可能となります。
 wscript.exe自体がCOM化されているので、WSHの機能は、他のアプリケーション,たとえばEXCELから呼び出すこともできます。

 
WshShell オブジェクト
 

 WshShell オブジェクトはWindowsOSの管理ルーチンです。この情報をプロパテで確認できます。

var WShell = WScript.CreateObject("Wscript.Shell"); var WshEnv = WShell.Environment("PROCESS"); WScript.Echo(WshEnv("PATH"));
「メモ帳」に上のように打ち込み、JSの拡張子で保存します。そしてダブルクリック。
1行目でWShelという名のWScriptオブジェクトを作ります。
2行目でそのプロパテの返値を変数WshEnvに入れます。
3行目でその配列のPATHの値を出力します。

var WShell = WScript.CreateObject("Wscript.Shell"); WScript.Echo(WShell.SpecialFolders("Desktop"));
同じようにしてダブルクリック。
1行目でWShellという名のWScriptオブジェクトを作ります。
2行目でそのプロパテSpecialFoldersを直接出力します。SpecialFoldersはコレクション(オブジェクト)なので”Desktop”で指示して値を取り出しています。


デスクトップにメッセージボックスが現れ、値を表示します。

基本的な使い方は以上です。レジストリを読み書きもできます。レジストリ自体の構造を十分理解し、スクリプトの手法に習熟してから利用下さい。


2003.11.09
by Kon