WSH/JScriptでマイドキュメントなど特殊パスを得たい場面は多くあります。そこで、ここでは特殊パスを取得する方法をまとめておきます。
以下はマイドキュメントを調べる方法です。ShellオブジェクトのSpecialFolders()メソッドを使います。ちなみに、パスの末尾にパス記号(\)は付かない文字列が帰ってきますので注意。
var shell = WScript.CreateObject("WScript.Shell"); var mydoc = shell.SpecialFolders("MyDocuments"); WScript.Echo(mydoc);
デスクトップを得るには以下のようにします。
var shell = WScript.CreateObject("WScript.Shell"); var desktop = shell.SpecialFolders("Desktop"); WScript.Echo(desktop);
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 | ファイルの新規作成のテンプレート |
その他、テンポラリフォルダなどの取得:
var fso = CreateObject("Scripting.FileSystemObject"); var windir = fso.GetSpecialFolder(0); // Windowsフォルダ var sysdir = fso.GetSpecialFolder(1); // Windows システムフォルダ var tmpdir = fso.GetSpecialFolder(2); // テンポラリフォルダ
他にも、WSHの起動パスを得る方法などは、以下を参考にどうぞ。