【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  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 -
- 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」 特設サイトオープン!
最新情報・移行ノウハウを公開しています