DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

環境変数を取得する

名前を指定して環境変数を取得するには、Environment.GetEnvironmentVariableメソッドを使用します。すべての環境変数の名前と値は、Environment.GetEnvironmentVariablesメソッドを使って取得できます。

また、Environment.ExpandEnvironmentVariablesメソッドを使って取得する方法もあります。

.NET Framework 2.0以降のVB.NETでは、Environment.GetEnvironmentVariableメソッドの代わりに、My.Application.GetEnvironmentVariableメソッドを使うこともできます。

VB.NET
コードを隠すコードを選択
'環境変数の名前と値をすべて列挙する
Dim de As System.Collections.DictionaryEntry
For Each de In System.Environment.GetEnvironmentVariables()
    Console.WriteLine("{0}={1}", de.Key, de.Value)
Next de

'環境変数"Path"を取得する
Console.WriteLine(System.Environment.GetEnvironmentVariable("Path"))

'環境変数"windir"を取得する
Console.WriteLine(System.Environment.ExpandEnvironmentVariables("%windir%"))
C#
コードを隠すコードを選択
//環境変数の名前と値をすべて列挙する
foreach (System.Collections.DictionaryEntry de
    in System.Environment.GetEnvironmentVariables())
{
    Console.WriteLine("{0}={1}", de.Key, de.Value);
}

//環境変数"Path"を取得する
Console.WriteLine(System.Environment.GetEnvironmentVariable("Path"));

//環境変数"windir"を取得する
Console.WriteLine(System.Environment.ExpandEnvironmentVariables("%windir%"));

レジストリキーから環境変数を取得する

上に紹介した方法では、現在のプロセスから環境変数を取得しています。Windowsの「環境変数」ダイアログで表示されているような、ユーザー環境変数とシステム環境変数を取得する方法は、.NET Framework 2.0から追加されました。GetEnvironmentVariablesとGetEnvironmentVariableの2番目のパラメータにEnvironmentVariableTarget構造体を指定します。ユーザー環境変数を取得するにはUserを、システム環境変数を取得するにはMachineを指定します。Processを指定すると、何も指定しないときと同様に、現在のプロセスから環境変数を取得します。

VB.NET
コードを隠すコードを選択
'システム環境変数の名前と値をすべて列挙する
For Each de As System.Collections.DictionaryEntry _
    In System.Environment.GetEnvironmentVariables( _
        System.EnvironmentVariableTarget.Machine)
    Console.WriteLine("{0}={1}", de.Key, de.Value)
Next de

'ユーザー環境変数の"TEMP"を取得する
Console.WriteLine( _
    System.Environment.GetEnvironmentVariable( _
        "TEMP", System.EnvironmentVariableTarget.User))
C#
コードを隠すコードを選択
//システム環境変数の名前と値をすべて列挙する
foreach (System.Collections.DictionaryEntry de
    in System.Environment.GetEnvironmentVariables(
    System.EnvironmentVariableTarget.Machine))
{
    Console.WriteLine("{0}={1}", de.Key, de.Value);
}

//ユーザー環境変数の"TEMP"を取得する
Console.WriteLine(
    System.Environment.GetEnvironmentVariable(
    "TEMP", System.EnvironmentVariableTarget.User));
  • 履歴:
  • 2013/7/16 「レジストリキーから環境変数を取得する」のコードがコメントと合っていなかったのを修正。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。