![]() |
|
|
基礎解説 チェック式 WSH入門 第10回 WScriptオブジェクトを利用する(1) 1.WScriptオブジェクト Microsoft MVPVisual Developer - Scripting 牟田口 大介 2007/05/17 |
|
|
|
|
|
前回から少し時間がたったが、皆さんいかがお過ごしだろうか? その間、筆者は、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 |
このスクリプトを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 |
このスクリプトを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 |
| INDEX | ||
| [基礎解説]チェック式 WSH入門 | ||
| 第10回 WScriptオブジェクトを利用する(1) | ||
| 1.WScriptオブジェクト | ||
| 2.スクリプト・ファイルの情報を取得するプロパティ | ||
| 3.名前付きと名前なし引数 | ||
| 基礎解説 |
ホワイトペーパー(TechTargetジャパン)
- WindowsTIPS (2010/3/19)
− [シャットダウン]ボタンの設定を変更する
− WINSサーバをインストールする
− WINSサーバをnetshコマンドで管理する - Windows 7のファイアウォール機能 (2010/3/18)
Win 7のファイアウォールの概要解説。ルールセットを切り替えるプロファイル機能が強化され、ドメインでもVPNでも、適切なルールが自動選択される - 第212話 プリンタ用紙 (2010/3/16)
致命的なディスク・クラッシュが起きる確率は、クラッシュによってもたらされる被害の大きさに比例する… - WindowsTIPS (2010/3/12)
− 不要なアドオンを無効化してIE8の起動を高速化する
− IE8のソース表示エディタを変更する
− RRASのNATでポートマッピングを定義する
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |










