運用 Windows管理者のためのWindows Script Host入門
第6回 WshShellオブジェクトの詳細(2)
1.特殊フォルダの取得
――SpecialFoldersプロパティ――
海津智宏
2004/09/17
前回 に引き続きWshShellオブジェクトについて解説する。WshShellオブジェクトは、プログラムの実行やプログラムへのキー・ストロークの送信、環境変数の取得と設定など、OSに対する各種の処理を行うオブジェクトである。
特殊フォルダの取得
―― SpecialFoldersプロパティ ――
Windows環境では、デスクトップ(画面の最背面にある部分。壁紙などを貼り付けることができる)やマイ・ドキュメント、スタートメニューなどの特別なフォルダをよく使うが、それらに対応する実際のフォルダは、動作環境によってパスが異なるため(実行するOSやユーザーごとに異なるなど)、スクリプトから利用する場合も、コードでフォルダのパスを直接指定することはできない。
このような場合に利用できるのがWshShellオブジェクトのSpecialFoldersというプロパティである。SpecialFoldersプロパティを利用すれば、これら特殊フォルダのパスを取得することができる。SpecialFoldersプロパティでフォルダを取得してから操作するようにすれば、特定の環境に依存しないスクリプトを作成可能だ。
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>
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ
**先週の人気講座ランキング**
〜 Android編 〜