问题描述
感谢 this 和 this 之类的帖子,我能够获取 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);