スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 
 

運用 Windows管理者のためのWindows Script Host入門

第6回 WshShellオブジェクトの詳細(2)

1.特殊フォルダの取得
――SpecialFoldersプロパティ――

海津智宏
2004/09/17


Windows管理者のための
Windows Script Host入門
WSHの内部構造
WSHスクリプト・コーディングの第1歩
WScriptオブジェクトの詳細(1)
WScriptオブジェクトの詳細(2)
WshShellオブジェクトの詳細(1)
WshShellオブジェクトの詳細(2)
WshShellオブジェクトの詳細(3)
WshNetworkオブジェクトの詳細
WshControllerオブジェクトの詳細
WSHスクリプトからのファイル操作(1)
WSHスクリプトからのファイル操作(2)

 前回に引き続きWshShellオブジェクトについて解説する。WshShellオブジェクトは、プログラムの実行やプログラムへのキー・ストロークの送信、環境変数の取得と設定など、OSに対する各種の処理を行うオブジェクトである。

特殊フォルダの取得
―― SpecialFoldersプロパティ ――

 Windows環境では、デスクトップ(画面の最背面にある部分。壁紙などを貼り付けることができる)やマイ・ドキュメント、スタートメニューなどの特別なフォルダをよく使うが、それらに対応する実際のフォルダは、動作環境によってパスが異なるため(実行するOSやユーザーごとに異なるなど)、スクリプトから利用する場合も、コードでフォルダのパスを直接指定することはできない。

 このような場合に利用できるのがWshShellオブジェクトのSpecialFoldersというプロパティである。SpecialFoldersプロパティを利用すれば、これら特殊フォルダのパスを取得することができる。SpecialFoldersプロパティでフォルダを取得してから操作するようにすれば、特定の環境に依存しないスクリプトを作成可能だ。

SpecialFoldersプロパティ(WSHリファレンス)

 SpecialFoldersで取得できるフォルダは次の16種類である。ただし、一時フォルダやWindowsのシステム・フォルダはSpecialFoldersではなく、環境変数を利用して取得する。

フォルダ指定 意味
AllUsersDesktop All Usersのデスクトップ
AllUsersStartMenu All Usersのスタート・メニュー
AllUsersPrograms All Usersのスタート・メニューの「すべてのプログラム」
AllUsersStartup All Usersのスタート・メニューの「スタートアップ」
Desktop デスクトップ
Favorites お気に入り
Fonts フォント
MyDocuments マイ・ドキュメント
NetHood マイ・ネットワーク
PrintHood プリンタ
Programs スタート・メニューの「すべてのプログラム」
Recent 最近使ったファイル
SendTo コンテキスト・メニューの「送る」
StartMenu スタート・メニュー
Startup スタート・メニューの「スタートアップ」
Templates ファイルの新規作成のテンプレート
SpecialFoldersプロパティで取得できる特殊フォルダ

 SpecialFoldersを使うときは、次のように、取得したい特殊フォルダのフォルダ指定文字をパラメータとして指定する。

objShell.SpecialFolders("フォルダ指定")

 例えばマイ・ドキュメントのフォルダを知りたければ、次のようにする。

objShell.SpecialFolders("MyDocument")

 実際には、SpecialFoldersはフォルダの名前(表中のフォルダ指定)をキーとするコレクションを表し、続くカッコの部分はそのデフォルト・プロパティであるItemプロパティとなっている(この関係については前出のオブジェクト・モデルの図を参照)。つまり上のスクリプトを省略せずに書くとすれば、次のようになる。

objShell.SpecialFolders.Item("MyDocument")

 次のコードは、各特殊フォルダをコマンドラインに一覧表示するサンプル・スクリプトである。

 1: Set objShell = WScript.CreateObject("WScript.Shell")
 2: WScript.Echo "Desktop: "
 3: WScript.Echo "  " & objShell.SpecialFolders("Desktop")
 4: WScript.Echo "Favorites: "
 5: WScript.Echo "  " & objShell.SpecialFolders("Favorites")
 6: WScript.Echo "MyDocuments: "
 7: WScript.Echo "  " & objShell.SpecialFolders("MyDocuments")
 8: WScript.Echo "SendTo: "
 9: WScript.Echo "  " & objShell.SpecialFolders("SendTo")
10: WScript.Echo "StartMenu: "
11: WScript.Echo "  " & objShell.SpecialFolders("StartMenu")
12: WScript.Echo "Startup: "
13: WScript.Echo "  " & objShell.SpecialFolders("Startup")   
SpecialFoldersの利用例

 これをspecialfolders.vbsというファイルに保存して実行すると次のようになる。

D:\WSH> cscript specialfolders.vbs
Desktop:
  C:\Documents and Settings\tomo-k\デスクトップ
Favorites:
  C:\Documents and Settings\tomo-k\Favorites
MyDocuments:
  C:\Documents and Settings\tomo-k\My Documents
SendTo:
  C:\Documents and Settings\tomo-k\SendTo
StartMenu:
  C:\Documents and Settings\tomo-k\スタート メニュー
Startup:
  C:\Documents and Settings\tomo-k\スタート メニュー\プログラム\スタートアップ

D:\WSH>
 

 INDEX
  [運用]Windows管理者のためのWindows Script Host入門
  第6回 WshShellオブジェクトの詳細(2)
  1.特殊フォルダの取得
    2.環境変数の取得と設定
    3.ショートカットの作成
 
 運用

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

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

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

RSSフィード

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

- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT

ソリューションFLASHPR