【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 
 

基礎解説

チェック式 WSH入門
―― 演習方式で身につけるWSH超入門 ――

第10回 WScriptオブジェクトを利用する(1)

1.WScriptオブジェクト

Microsoft MVP
Visual Developer - Scripting
牟田口 大介
2007/05/17
Page1 Page2 Page3

Index(全19回)
WSHを始めよう
VBScriptの基本を押さえよう(その1) 文字列の入出力
VBScriptの基本を押さえよう(その2) 計算と分岐処理
関数を使いこなす(その1) 文字列、数値、日付を扱う関数
データ型について理解を深めよう
VBScriptの配列を極める
Subプロシージャでユーザー独自の処理を定義する
Functionプロシージャでユーザー独自の関数を定義する
VBScriptのオブジェクトを使いこなす
WScriptオブジェクトを利用する(1)
WScriptオブジェクトを利用する(2)
WshShellオブジェクトを利用する(1)
WshShellオブジェクトを利用する(2)
WshShellオブジェクトを利用する(3)
WshNetworkオブジェクトを利用する
FileSystemObjectオブジェクトを利用する(1)
FileSystemObjectオブジェクトを利用する(2)
FileSystemObjectオブジェクトを利用する(3)
TextStreamオブジェクトとDictionaryオブジェクトを使う[最終回]

 前回から少し時間がたったが、皆さんいかがお過ごしだろうか?

 その間、筆者は、Windowsスクリプティングの世界に新たに加わったWindows PowerShellと、この連載で取り上げているWSH(Windows Script Host)を比較し、両者の使い分けを考察する趣旨の記事を書いたので、新しいPowerShellに興味のある方はぜひ読んでいただきたいと思う。

 さて、前回まではVBScriptの文法について述べてきた。今回から数回にわたって、VBScriptを用いてWSHの提供するオブジェクトを使いこなす方法について解説する。

WSHの提供するオブジェクト――WScriptオブジェクト

 WSHの提供するオブジェクトは数多く存在するが、その中からまずは基本となるWScriptオブジェクトを解説する。WScriptオブジェクトはWSHが起動する際に自動的にインスタンス化されるオブジェクトなので、Dimステートメントを用いた変数宣言、およびSetステートメントを用いたオブジェクトの代入を行う必要はなく、「WScript.<プロパティやメソッド>」のように直接呼び出すことができる。なお、このような動作は前回解説したErrオブジェクトと似ているが、ErrオブジェクトはVBScriptのオブジェクトなので、Internet Explorer上で表示されるHTML文書内のスクリプトなどでも用いることができるが、WScriptオブジェクトはWSH固有の機能なので、HTML中では使用できない。

 WScriptオブジェクトはスクリプトの動作を設定・取得するためのプロパティ群と、スクリプトの制御を行うためのメソッド群で成り立っている。まずはその一覧をお目に掛けよう。


プロパティ
WSH実行ファイルの情報 Name:WSHの実行ファイル名
Path:WSHの実行ファイルのあるフォルダ・パス
FullName:WSHの実行ファイルパス
Version:WSHのバージョン
スクリプトの情報 ScriptName:スクリプトのファイル名
ScriptFullName:スクリプトのフルパス
Interactive:バッチモードorインタラクティブモード
TimeOut:タイムアウトの秒数
Arguments:コマンドライン引数の情報
標準入出力 StdIn:標準入力
StdOut:標準出力
StdErr:標準エラー出力
WScriptオブジェクトのプロパティ

メソッド
メッセージ表示 Echo:メッセージを表示
スクリプト実行制御 Quit:スクリプトの終了
Sleep:スクリプトの一時停止
オブジェクトの取り扱い CreateObject:オブジェクトの作成
ConnectObject:オブジェクトに接続
DisconnectObject:オブジェクトを切断
GetObject:オブジェクトの取得
WScriptオブジェクトのメソッド

 この表に従って、それぞれのプロパティとメソッドの使い方を見ていこう。

WSH実行ファイルの情報を取得するプロパティとメッセージ表示メソッド

 まずは、簡単なプロパティとメソッドから紹介する。前回述べたオブジェクトの話を念頭に置いて読み進んでいただきたい。まずはWSHのホスト実行ファイルの情報を取得するスクリプトを取り上げる。

※ファイル:ShowWSHInfo.vbs

Option Explicit
WScript.Echo "WSHの実行ファイル名:" & WScript.Name & vbCrLf & _
             "実行ファイルのあるフォルダ・パス:" & WScript.Path & vbCrLf & _
             "実行ファイルのフルパス:" & WScript.FullName & vbCrLf & _
             "バージョン:" & WScript.Version

 このスクリプトをwscript.exeで実行すると(*)、次のようなOKボタン付きのダイアログが表示される。

* 第1回で述べたとおり、WSHにはGUI版のwscript.exeとCUI版のcscript.exeの2つの実行ファイルが存在する。スクリプトのファイル名を例えばShowWSHInfo.vbsとすると、wscript.exeで実行するにはコマンド・プロンプト上で「wscript.exe ShowWSHInfo.vbs」とする。もしくはエクスプローラ上でShowWSHInfo.vbsをダブル・クリックすると、デフォルトの設定ではwscript.exeで実行される。

WSHのホスト情報を表示するスクリプト(1)
WScriptオブジェクトのEchoメソッドを用い、WScriptオブジェクトのプロパティのの中から、ホスト実行ファイル情報を表示している。

 WScriptオブジェクトのEchoメソッドは、引数に文字列を取り、その内容を表示するメソッドである。また、WScriptオブジェクトの各プロパティを参照することで、ホスト実行ファイルの情報(名前、フォルダ・パス、ファイルのフルパス、バージョン)を取得している。これらのプロパティによってWSHが古いバージョン(例えば2.0など)の場合に処理をとりやめたり(これは後で述べるQuitメソッドを併用する)、ホストがwscript.exeかcscript.exeかを判別したりできる。

 Echoメソッドは「,(カンマ)」で区切って複数の引数を取ることができ、指定した文字列が連結された結果を表示する。すなわち最初のスクリプトは次のように簡便に記述できるということである。

※ファイル:ShowWSHInfo2.vbs

Option Explicit
WScript.Echo "WSHの実行ファイル名:" , WScript.Name , _
             "実行ファイルのあるフォルダ・パス:" , WScript.Path , _
             "実行ファイルのフルパス:" , WScript.FullName , _
             "バージョン:" , WScript.Version

 このスクリプトをwscript.exeで実行すると次のように表示される。

WSHのホスト情報を表示するスクリプト(2)
Echoメソッドで複数の文字列を引数として渡すと、それらが空白文字で連結された文字列を表示する。

 引数に与えた複数の文字列が自動的に空白文字で連結されて表示されるので便利である。

 EchoメソッドはVBScriptのMsgBox関数と動作が似ているが、これらのスクリプトをcscript.exeで実行すると異なった挙動を示す。1つ目のスクリプトをcscript.exeで実行すると次のようになる。

WSHのホスト情報を表示するスクリプト(1)をcscript.exeで実行
Echoメソッドの引数に与えた文字列が直接コマンド・プロンプト内に表示される。FullNameプロパティの値がC:\WINDOWS\system32\cscript.exeになっていることにも注目。

 OKボタン付きのダイアログが表示されるのではなく、このようにコマンド・プロンプト内に直接表示される。また、Echoメソッド実行時にスクリプトが中断されないので、スクリプトの経過表示をするのに便利である。ちなみにcscript.exe内でEchoメソッドを用いると、改行文字が自動的に付加されるので、1つ目のスクリプトは次のように書き換えても同様の結果が得られる。cscript.exeで実行する際にはこちらの書き方が直感的だろう。

※ファイル:ShowWSHInfo3.vbs

Option Explicit
WScript.Echo "WSHの実行ファイル名:" , WScript.Name
WScript.Echo "実行ファイルのあるフォルダ・パス:" , WScript.Path
WScript.Echo "実行ファイルのフルパス:" , WScript.FullName
WScript.Echo "バージョン:" , WScript.Version

※wscript.exeでこのスクリプトを実行すると1行ごとに[OK]ボタン付きダイアログが表示される。
 

 INDEX
  [基礎解説]チェック式 WSH入門
  第10回 WScriptオブジェクトを利用する(1)
  1.WScriptオブジェクト
    2.スクリプト・ファイルの情報を取得するプロパティ
    3.名前付きと名前なし引数
 
 基礎解説

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています