首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含其他环境变量的PATH环境变量

包含其他环境变量的PATH环境变量
EN

Stack Overflow用户
提问于 2018-12-14 20:27:13
回答 2查看 75关注 0票数 3

我知道我可以通过调用以下命令来查询任何环境变量:

代码语言:javascript
复制
System.Environment.GetEnvironmentVariable();

例如,我想要windir的值,也就是%SystemRoot%。但是,该函数将其解释为C:\Windows (这是SystemRoot的值)。

通过使用Registry.LocalMachine.OpenSubKey()查询注册表项,我得到了相同的行为

有没有办法从环境变量中获取变量名,而不是它们的路径?(我需要它,以便在我使用的SDK的多个已安装版本之间轻松切换。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-14 20:41:22

据我所知,唯一的方法是直接从注册表读取环境变量,并指定不希望扩展它:

代码语言:javascript
复制
registryKey.GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);

参见the docs for RegistryValueOptions

票数 2
EN

Stack Overflow用户

发布于 2018-12-14 20:35:15

%WINDIR%%SYSTEMROOT%具有相同的值,这仅仅是一个巧合。原因很明显,但它们仍然是自变量。更改其中一个不会导致更改另一个。

你必须手动编写一些东西,寻找具有相同值的其他环境变量,并替换掉你脑海中的任何替代变量,例如%SYSTEMROOT%

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53779771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档