是否还有其他特殊情况Windows环境变量,如PATH?

时间:2015-09-14 02:19:26

标签: c# windows environment-variables

通常在Windows中,系统级环境变量由具有相同名称的用户级环境变量取代。但是,PATH环境变量是一种特殊情况。用户级PATH环境变量附加到系统级环境变量的末尾。

我使用以下C#代码来获取进程级环境变量值,并考虑了这种特殊情况。请注意,我无法使用EnvironmentVariableTarget.Process选项,因为这不会考虑自应用程序开始运行以来的任何更改。

public static Dictionary<string, string> GetEnvironmentVariables()
{

    var environmentVariables = new Dictionary<string, string>();

    //get machine environment variables
    IDictionary machineEnvironmentVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine);
    foreach (DictionaryEntry envVar in machineEnvironmentVariables)
    {
        string key = envVar.Key.ToString()
        environmentVariables[key] = envVar.Value.ToString();
    }

    //overwrite with any user environment variables
    IDictionary userEnvironmentVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
    foreach (DictionaryEntry envVar in userEnvironmentVariables)
    {
        string key = envVar.Key.ToString();
        if (key.ToLower() == "path" && environmentVariables.ContainsKey(key))
            environmentVariables[key] += envVar.Value.ToString();
        else
            environmentVariables[key] = envVar.Value.ToString();
    }
    return environmentVariables;

}

我的问题是:是否还有其他需要考虑的特殊情况?请提供备份答案的文档链接。

0 个答案:

没有答案