(1/3)スクリプトで環境変数をうまく使えば、システムやユーザーに応じて柔軟に処理を切り替え可能なスクリプトを作成できる。WSHからのファイル操作(2)前回に引き続きWshShellオブジェクトについて解説する。WshShellオブジェクトは、プログラムの実行やプログラムへのキー・ストロークの送信、環境変数の取得と設定など、OSに対する各種の処理を行うオブジェクトである。——Windows環境では、デスクトップ(画面の最背面にある部分。壁紙などを貼り付けることができる)やマイ・ドキュメント、スタートメニューなどの特別なフォルダをよく使うが、それらに対応する実際のフォルダは、動作環境によってパスが異なるため(実行するOSやユーザーごとに異なるなど)、スクリプトから利用する場合も、コードでフォルダのパスを直接指定することはできない。このような場合に利用できるのがWshShellオブジェクトのSpecialFoldersというプロパティである。SpecialFoldersプロパティを利用すれば、これら特殊フォルダのパスを取得することができる。SpecialFoldersプロパティでフォルダを取得してから操作するようにすれば、特定の環境に依存しないスクリプトを作成可能だ。・SpecialFoldersプロパティSpecialFoldersで取得できるフォルダは次の16種類である。一時フォルダやWindowsのシステム・フォルダはSpecialFoldersではなく、環境変数を利用して取得する。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")次のコードは、各特殊フォルダをコマンドラインに一覧表示するサンプル・スクリプトである。objShell.SpecialFolders("Startup")SpecialFoldersの利用例これをspecialfolders.vbsというファイルに保存して実行すると次のようになる。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。