System.Environment.GetEnvironmentVariable メソッド
この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。
このメソッドは GetEnvironmentVariable 、現在のプロセスから環境変数の値を取得します。
環境変数名は Unix に似たシステムでは大文字と小文字が区別されますが、Windows では大文字と小文字は区別されません。
Note
ネイティブ ライブラリによって行われたインプロセス環境の変更は、マネージド呼び出し元には表示されません。 逆に、マネージド呼び出し元によって行われたこのような変更は、ネイティブ ライブラリでは見られません。
GetEnvironmentVariable(String) メソッド
このメソッドは GetEnvironmentVariable(String) 、現在のプロセスの環境ブロックからのみ環境変数を取得します。 これは、値EnvironmentVariableTarget.Processが 〘 のメソッドをGetEnvironmentVariable(String, EnvironmentVariableTarget)呼び出すこととtarget
同じです。
すべての環境変数とその値を取得するには、メソッドを GetEnvironmentVariables 呼び出します。
Windows システムの場合
Windows システムでは、現在のプロセスの環境ブロックには次のものが含まれます。
作成した親プロセスによって提供されるすべての環境変数。 たとえば、コンソール ウィンドウから起動された .NET アプリケーションは、コンソール ウィンドウのすべての環境変数を継承します。
親プロセスがない場合は、代わりにマシンごとの環境変数とユーザーごとの環境変数が使用されます。 たとえば、新しいコンソール ウィンドウには、起動時に定義されたすべてのマシンごとの環境変数とユーザーごとの環境変数があります。
プロセスの実行中にプロセス ブロックに追加された変数は、値EnvironmentVariableTarget.Processが 〗のメソッドまたはSetEnvironmentVariable(String, String, EnvironmentVariableTarget)メソッド
target
をSetEnvironmentVariable(String, String)呼び出すことによって追加されます。 これらの環境変数は、.NET アプリケーションが終了するまで保持されます。
プロセスの開始後に環境変数が作成された場合は、このメソッドを使用して、メソッドまたはSetEnvironmentVariable(String, String, EnvironmentVariableTarget)値が .EnvironmentVariableTarget.Processのメソッドtarget
を呼び出SetEnvironmentVariable(String, String)して作成された変数のみを取得できます。
Unix に似たシステムの場合
Unix に似たシステムでは、現在のプロセスの環境ブロックには次の環境変数が含まれます。
作成した親プロセスによって提供されるすべての環境変数。 シェルから起動された .NET アプリケーションの場合、これにはシェルで定義されているすべての環境変数が含まれます。
プロセスの実行中にプロセス ブロックに追加された変数は、値EnvironmentVariableTarget.Processが 〗のメソッドまたはSetEnvironmentVariable(String, String, EnvironmentVariableTarget)メソッド
target
をSetEnvironmentVariable(String, String)呼び出すことによって追加されます。 これらの環境変数は、.NET アプリケーションが終了するまで保持されます。
Unix に似たシステム上の .NET では、マシンごとまたはユーザーごとの環境変数はサポートされません。
GetEnvironmentVariable(String, EnvironmentVariableTarget) メソッド
すべての環境変数とその値を取得するには、メソッドを GetEnvironmentVariables 呼び出します。
Windows システムの場合
Windows では、このパラメーターは、 target
環境変数を現在のプロセスから取得するか、現在のユーザーまたはローカル コンピューターの Windows オペレーティング システム レジストリ キーから取得するかを指定します。 .NET プロセスを作成した親プロセスで使用できるその他の環境変数と同様に、ユーザーごとおよびマシンごとの環境変数はすべて、現在のプロセスの環境ブロックに自動的にコピーされます。 ただし、現在のプロセスの環境ブロックにのみ追加された環境変数は、メソッドまたはSetEnvironmentVariable(String, String, EnvironmentVariableTarget)値が persist のEnvironmentVariableTarget.Processメソッドtarget
を呼び出SetEnvironmentVariable(String, String)して、プロセスの期間中のみ追加されます。
Unix に似たシステムの場合
Unix に似たシステムでは、このメソッドはGetEnvironmentVariable(String, EnvironmentVariableTarget)
値EnvironmentVariableTarget.Processのみをサポートしますtarget
。 値を持target
つ呼び出し、またはEnvironmentVariableTarget.Userサポートされていない呼び出しを返しますnull
。EnvironmentVariableTarget.Machine
プロセスごとの環境変数は次のとおりです。
親プロセス (通常、.NET アプリケーションの呼び出し
dotnet.exe
または起動に使用されるシェル) から継承されたもの。メソッドまたは値EnvironmentVariableTarget.Processが のSetEnvironmentVariable(String, String)メソッド
target
をSetEnvironmentVariable(String, String, EnvironmentVariableTarget)呼び出すことによって定義されたもの。 これらの環境変数は、プロセスまたは .NET アプリケーションが終了するまでdotnet
のみ保持されます。
.NET