メイン画像

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
:

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事