VBScript - Windows の特殊フォルダを取得する
VBScript - Windows の特殊フォルダを取得する
VBScript で Windows の特殊フォルダを取得する方法は3つあります。
- FileSystemObject の GetSpecialFolder を使う
- Shell オブジェクトの SpecialFolders コレクションから取得する
- 環境変数から取得する
FileSystemObject の GetSpecialFolder を使う
FileSystemObject の GetSpecialFolder を使って特殊フォルダを取得できます。
GetSpecialFolder は指定された特殊フォルダのオブジェクトを返します。
この方法で取得できるのは、下表にある3つのフォルダです。
フォルダの種類 | 定数 | 値 |
---|---|---|
Windows フォルダ | WindowsFolder | 0 |
System フォルダ | SystemFolder | 1 |
Temp フォルダ | TemporaryFolder | 2 |
使用例
次のスクリプトは、それぞれの特殊フォルダのパスを表示します。
'Windows フォルダ
WScript.Echo fso.GetSpecialFolder(0).Path
' → C:\Windows
'System フォルダ
WScript.Echo fso.GetSpecialFolder(1).Path
' → C:\Windows\System32
'Temp フォルダ
WScript.Echo fso.GetSpecialFolder(2).Path
' → C:\Users\username\AppData\Local\Temp
Shell オブジェクトの SpecialFolders コレクションから取得する
WshShell オブジェクトの SpecialFolders コレクションから取得することもできます。
SpecialFolders コレクションにはすべての特殊フォルダのパスが設定されています。
次のスクリプトは、すべての特殊フォルダのパスを表示します。
Dim shell
Set shell = CreateObject("WScript.Shell")
Dim path
For Each path In shell.SpecialFolders
WScript.Echo path
Next
ただ、これではどのパスが何の特殊フォルダなのか分かりません。
なので通常は特殊フォルダを指定して取得します。
特殊フォルダの指定は、SpecialFolders コレクションの Item プロパティで行います。
(Item プロパティは省略可)
次のスクリプトは、デスクトップのパスを表示します。
Dim shell
Set shell = CreateObject("WScript.Shell")
WScript.Echo shell.SpecialFolders.Item("Desktop")
' → C:\Users\username\Desktop
'Item プロパティを省略することもできます
WScript.Echo shell.SpecialFolders("Desktop")
SpecialFolders に指定できる内容は以下のとおりです。
指定する値 | 返ってくるフォルダ |
---|---|
AllUsersDesktop | すべてのユーザーのデスクトップ |
AllUsersStartMenu | すべてのユーザーのスタートメニュー |
AllUsersPrograms | すべてのユーザーのスタートメニュー → プログラム |
AllUsersStartup | すべてのユーザーのスタートアップ |
Desktop | デスクトップ |
Favorites | お気に入り |
Fonts | フォント |
MyDocuments | ドキュメント |
NetHood | ネットフォルダ |
PrintHood | プリンターフォルダ |
Programs | スタートメニュー → プログラム |
Recent | 最近使ったファイル |
SendTo | 送る |
StartMenu | スタートメニュー |
Startup | スタートアップ |
Templates | テンプレート |
AppData | アプリケーションデータ |
環境変数から取得する
環境変数を取得するには ExpandEnvironmentStrings メソッドを使います。
引数には環境変数名を % で囲んだ値を指定します。
shell.ExpandEnvironmentStrings(%環境変数名%)
次のスクリプトは環境変数「TEMP」の内容を出力します。
Dim shell
Set shell = CreateObject("WScript.Shell")
WScript.Echo shell.ExpandEnvironmentStrings("%TEMP%")
' → C:\Users\username\AppData\Local\Temp
現在設定されている環境変数を表示するには、コマンドプロンプトから SET コマンドを実行します。
SET コマンドのパラメーターには何も指定しないでください。
C:\Users\username> set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\username\AppData\Roaming
:
アカウントを作成 して、もっと沢山の記事を読みませんか?
この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。
この記事にコメントをしてみませんか?