運用 Windows管理者のためのWindows Script Host入門 3.カレント・ディレクトリ操作とダイアログ・ボックス表示
海津智宏 |
|
|
カレント・ディレクトリの取得と変更
―― CurrentDirectoryプロパティ ――
スクリプト・ファイルが置かれた場所や、スクリプト・エンジンのファイル名は、WScriptオブジェクトから取得できる(関連リンク:第4回)。しかし、実際の作業フォルダはこれらとは異なっている場合がある。作業フォルダを取得するには、WshShellオブジェクトのCurrentDirectoryプロパティを利用する。また、このプロパティに値を設定することで作業フォルダを変更することができる。
CurrentDirectoryプロパティの利用例を次に示す。ディレクトリの移動をテストするため、最初のスクリプトを「D:\WSH\curdir.vbs」に、第2のスクリプトを「D:\WSH\Test\a.vbs」に作成する。
1: Set objShell = WScript.CreateObject("WScript.Shell") |
D:\WSH\curdir.vbs
WScript.Echo "a.vbs が実行されました!" |
D:\WSH\Test\a.vbs
この例では最初にカレント・ディレクトリを表示し(curdir.vbsの2行目)、次に「D:\WSH\Test」に移動した後(3行目)、もう1度カレント・ディレクトリを表示する(4行目)。そして最後に「a.vbs」をwscriptで起動する(5行目)。この「a.vbs」は移動した後の「D:\WSH\Test」フォルダのみに置いておく。正しくカレント・ディレクトリが移動されていれば、パスを指定しなくてもこのスクリプト・ファイルが見つけられるはずだ。
実行すると次のようになる。
サンプル・スクリプトの実行結果 |
確かにa.vbsが実行された。なお、カレント・ディレクトリの移動はWSHのプロセス内のみで行われているため、コマンドプロンプトのカレント・ディレクトリはWSHの実行終了後も元の「D:\WSH」のままである。
ダイアログ・ボックスの表示
―― Popupメソッド ――
Popupメソッドは、画面にメッセージ・ボックスを表示するメソッドである。GUIモードのwscriptで実行しても、コマンドライン・モードのcscriptで実行しても、メッセージ・ボックスのウィンドウが表示される。WScriptオブジェクトのWScript.Echoメソッドや、VBScriptのMsgBox関数でもメッセージ・ボックスは表示できるが、WshShellオブジェクトのPopupメソッドを利用すれば、ボタンやアイコンを自由に設定できるだけでなく、メッセージ・ボックスを表示する時間に制限を設けることもできる。
制限時間を設けることで、スクリプトの実行時に誰もいないような場合でも、自動的に実行を進めることができる。これを利用すれば、誰かがコンピュータを使っている場合にはいくつかの選択肢を提示し、誰もいなければ標準の動作を行う、といった使い方が可能になる。
Popupメソッドに渡すパラメータは、表示するメッセージ、制限時間、タイトル、タイプの4種類である。このうち、表示するメッセージ以外のものは省略可能である。メッセージとタイトルには文字列を、制限時間には秒数を指定する。秒数を省略した場合や0にした場合は、通常のメッセージ・ボックスと同じようにユーザーがボタンを押すまで待機する。
タイプには、メッセージ・ボックスに表示するボタンとアイコンを数値で指定する。この数値は、VBScriptであれば、あらかじめ決められた定数を利用できる。ボタンとアイコンの種類を以下に挙げる。
値 | 定数 | 意味 |
0
|
vbOKOnly | [OK]のみ表示する |
1
|
vbOKCancel | [OK][キャンセル]を表示する |
2
|
vbAbortRetryIgnore | [中止]「再試行]「無視]を表示する |
3
|
vbYesNoCancel | [はい][いいえ][キャンセル]を表示する |
4
|
vbYesNo | [はい][いいえ]を表示する |
5
|
vbRetryCancel | [再試行][キャンセル]を表示する |
ボタンの種類 |
値 | 定数 | 意味 |
0
|
なし | アイコンを表示しない |
16
|
vbCritical | 「STOP」アイコンを表示する |
32
|
vbQuestion | 「?」アイコンを表示する |
48
|
vbExclamation | 「!」アイコンを表示する |
64
|
vbInformation | 「i」アイコンを表示する |
アイコンの種類 |
値 | 定数 | 意味 |
0
|
vbDefaultButton1 | 1番目のボタンにフォーカスを設定する |
256
|
vbDefaultButton2 | 2番目のボタンにフォーカスを設定する |
512
|
vbDefaultButton3 | 3番目のボタンにフォーカスを設定する |
デフォルトで入力フォーカスが設定されるボタン |
実際にPopupメソッドを呼び出す場合には、ボタンの種類を表す値とアイコンの種類を表す値を足し合わせて指定する。これらの数値はWin32 APIのMessageBox関数で指定するものと同じである。
Popupメソッドは、戻り値として押されたボタンに対応する数値を返す。制限時間内にボタンが押されなかった場合は-1が返される。以下は押されたボタンに対応する数値である。
値 | 定数 | 意味 |
1
|
vbOK | [OK]が押された |
2
|
vbCancel | [キャンセル]が押された |
3
|
vbAbort | [中止]が押された |
4
|
vbRetry | [再試行]が押された |
5
|
vbIgnore | [無視]が押された |
6
|
vbYes | [はい]が押された |
7
|
vbNo | [いいえ]が押された |
-1
|
なし | 制限時間が経過した |
Popupメソッドからの戻り値 |
次の例では[OK]と[キャンセル]ボタンのあるメッセージ・ボックスを表示している。
1: Set objShell = WScript.CreateObject("WScript.Shell") |
2行目から4行目までで、[OK]と[キャンセル]ボタンのあるメッセージ・ボックスが表示され、クリックされたボタンの情報が戻り値として返され、iBtn変数に記憶される。後半では、Select Case文(リファレンス・リンク:Select Case ステートメント)を用いて押されたボタンによって場合分けをし(6行目)、[OK]ボタンのみのメッセージ・ボックスを表示する。実行すると以下のようなダイアログが表示される。
サンプル・スクリプトの実行結果 その1 |
このメッセージ・ボックスで[OK]ボタンや[キャンセル]ボタンをクリックすれば、それぞれ「実行しました」、「キャンセルしました」というメッセージが表示され、5秒間そのまま待っていれば「自動的に実行しました」というメッセージが表示される。次の図は5秒間待った場合のメッセージである。
サンプル・スクリプトの実行結果 その2 |
■
今回まで3回にわたりWshShellオブジェクトについて解説した。次回はWshNetworkオブジェクトについて解説する。
INDEX | ||
[運用]Windows管理者のためのWindows Script Host入門 | ||
第7回 WshShellオブジェクトの詳細(3) | ||
1.アプリケーション・イベント・ログの作成 | ||
2.WSHスクリプトからのレジストリ操作 | ||
3.カレント・ディレクトリ操作とダイアログ・ボックス表示 | ||
運用 |
TechTargetジャパン
- ファイルを自動バックアップする「ファイル履歴」機能 (2012/11/22)
Windows 8の「ファイル履歴」 はユーザーファイルを簡単にバックアップ/復元できる 新機能だ。最短10分間隔で自動バックアップできる - iPhone/iPod touchの無線LAN設定(iOS6改訂版) (2012/11/21)
iPhoneの無線LAN(Wi-Fi)活用ノウハウの解説記事を最新のiOS6向けに更新。auのiPhoneで利用可能なテザリングについても解説 - 第341話 下から懐中電灯 (2012/11/20)
夜のいたずらの定番「下から懐中電灯」。まったく、いくつまでそんなくだらないことしてるの、あんたは! - .NET Frameworkのバージョンを整理する(Win8更新) (2012/11/16)
何種類もあって複雑怪奇な.NET Frameworkのバージョン。それぞれの関係や特性を整理して解説する。Windows 8付属の.NET Framework 4.5も説明
|
|
- 「使う」から「公開する」へ
- プロジェクト活発化で求人増。好条件転職のチャンス?
- UnderTheBridge―ミッドナイトウイルスチェッカーの図
- 決算が早い会社、遅い会社――その違いは?
- HTML5のスマホ対応の基礎知識とハマリどころ3選
- ツールチップを表示するには?
- アジャイルな分析を可能にするカラムナデータベース
- ファイルを自動バックアップする「ファイル履歴」機能
- ソフトウェア開発で構成管理が重要になった5つの理由
- iPhone/iPod touchの無線LAN設定(iOS6改訂版)
- データバックアップの種類と特徴・適用範囲を整理する
- Office 2013に見る、現実的なタッチ・アプリの方向性
キャリアアップ
- - PR -
イベントカレンダー
- - PR -
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
「ITmedia マーケティング」新着記事
第4回 ステマかどうかなんて関係ない
少しでもステマだと疑われるようなコミュニケーション方法は採用するべきではない。企業...
フラッシュ・マーケティング:短時間(フラッシュ)で集客や販売を行う
早稲田大学 恩藏直人教授がマーケティングの最新キーワードを解説する。第2回は「フラッ...
CPC課金のディスプレイ広告出稿横断サービス機能を提供、DAC
DACはディスプレイ広告メニューの課金形態に関わらず、広告の一括管理を行うサービスを発...