環境変数の種類と有効範囲
環境変数には次の4つの種類があります。
それぞれ、設定値が有効になる範囲が異なります。
Volatile:
セッション単位の設定。ログオンしているユーザーでのみ有効になる。ログオフすると設定値は元に戻る。
Environment プロパティでの環境変数の取得と設定
WshShell オブジェクトの Environment プロパティを使って、環境変数の取得と設定ができます。
shell.Environment( Type )引数の Type には環境変数の種類を指定します。
認識できない値を指定した場合、実行時エラーが発生します。
→ プロシージャの呼び出し、または引数が不正です。
Environment プロパティは環境変数のコレクションを返します。
コレクションに環境変数名を指定して、取得または設定します。
環境変数 TEMP の内容を出力します。
環境変数 PROCESS_ENV_VAR に現在日時を設定します。
Dim shell Set shell = CreateObject("WScript.Shell") '現在のプロセスでのみ有効になる環境変数のコレクションを取得 Dim env Set env = shell.Environment("Process") '環境変数 TEMP の内容を表示 WScript.Echo env("TEMP") '環境変数 PROCESS_ENV_VAR に現在日時を設定 env("PROCESS_ENV_VAR") = Now WScript.Echo env("PROCESS_ENV_VAR")
ExpandEnvironmentStrings メソッドでの環境変数の取得
WshShell オブジェクトの ExpandEnvironmentStrings メソッドでも、環境変数を取得できます。
こちらは有効範囲 Process の環境変数からの取得専用です。
shell.ExpandEnvironmentStrings( name )引数には環境変数名を % で囲んだ値を指定します。
たとえば、環境変数名が TEMP の場合は %TEMP% とします。
Dim shell Set shell = CreateObject("WScript.Shell") WScript.Echo shell.ExpandEnvironmentStrings("%TEMP%") ' → C:\Users\username\AppData\Local\Temp