如何在不丢失 %PathVariableName% 的情况下调用 Environment.GetEnvironmentVariable,例如 %SystemRoot%

问题描述

感谢 thisthis 之类的帖子,我能够获取 PATH 环境变量并根据需要对其进行修改

但是,一旦我调用 System.Environment.GetEnvironmentvariable(name,scope),返回的字符串不再包含带有 %PathVariableName% 的 PATH 变量(例如 %systemDrive%)。

我得到的不是预期的 %systemDrive%\folder,而是 C:\folder

虽然它按预期运行,但如果可以,我更愿意保留变量。

当我调用 GetEnvironmentvariable 时,有没有办法保留这些路径变量名称

解决方法

感谢@RetiredNinja,在here answered by Nathan Bedford中找到了答案。

基本上路径在注册表中可用,因此从那里检索字符串将允许我保留路径变量。

string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH","",RegistryValueOptions.DoNotExpandEnvironmentNames);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...