System.Environment.GetEnvironmentVariable 方法

本文提供了此 API 参考文档的补充说明。

该方法 GetEnvironmentVariable 从当前进程检索环境变量的值。

环境变量名称在类似 Unix 的系统上区分大小写,但在 Windows 上不区分大小写。

注意

托管调用方不会看到本机库进行的进程内环境修改。 相反,本机库不会看到托管调用方所做的此类修改。

GetEnvironmentVariable(String) 方法

该方法 GetEnvironmentVariable(String) 仅从当前进程的环境块中检索环境变量。 它等效于调用 GetEnvironmentVariable(String, EnvironmentVariableTarget) 值为 target . EnvironmentVariableTarget.Process.

若要检索所有环境变量及其值,请调用该方法 GetEnvironmentVariables

在 Windows 系统上

在 Windows 系统上,当前进程的环境块包括:

  • 由创建它的父进程提供的所有环境变量。 例如,从控制台窗口启动的 .NET 应用程序继承控制台窗口的所有环境变量。

    如果没有父进程,则改用每台计算机和每用户环境变量。 例如,新的控制台窗口具有启动时定义的所有每台计算机和每用户环境变量。

  • 在进程运行时添加到进程块的任何变量,方法是调用SetEnvironmentVariable(String, String)值为 <a0/a0> 的方法或SetEnvironmentVariable(String, String, EnvironmentVariableTarget)方法target。 这些环境变量一直持续到 .NET 应用程序终止。

如果在进程启动后创建环境变量,则可以使用此方法仅检索通过调用 SetEnvironmentVariable(String, String) 方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 值为 target .EnvironmentVariableTarget.Process的方法创建的变量。

在类似 Unix 的系统上

在类似 Unix 的系统上,当前进程的环境块包含以下环境变量:

类似 Unix 的系统上的 .NET 不支持每台计算机或每用户环境变量。

GetEnvironmentVariable(String, EnvironmentVariableTarget) 方法

若要检索所有环境变量及其值,请调用该方法 GetEnvironmentVariables

在 Windows 系统上

在 Windows 上,该 target 参数指定是从当前进程还是从当前用户或本地计算机的 Windows 操作系统注册表项中检索环境变量。 所有每用户和每台计算机环境变量都会自动复制到当前进程的环境块中,与创建 .NET 进程的父进程可用的任何其他环境变量一样。 但是,仅通过将方法或SetEnvironmentVariable(String, String, EnvironmentVariableTarget)方法targetEnvironmentVariableTarget.Process的值仅在进程持续时间内保留的方法添加到SetEnvironmentVariable(String, String)当前进程的环境变量块中。

在类似 Unix 的系统上

在类似 Unix 的系统上,该方法 GetEnvironmentVariable(String, EnvironmentVariableTarget) 仅支持 targetEnvironmentVariableTarget.Process 。 具有targetEnvironmentVariableTarget.Machine或不受支持且EnvironmentVariableTarget.Usernull返回的调用。

每个进程环境变量包括: