当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中获取和设置环境变量?

如何解决《如何在C#中获取和设置环境变量?》经验,为你挑选了5个好方法。

如何获取Environnment变量,如果缺少某些内容,请设置值?



1> Patrick Desj..:

使用System.Environment类.

方法

var value = System.Environment.GetEnvironmentVariable(variable [, Target])

System.Environment.SetEnvironmentVariable(variable, value [, Target])

会为你做的工作.

可选参数Target是类型的枚举EnvironmentVariableTarget,它可以是以下之一:Machine,Process,或User.如果省略它,则默认目标是当前进程.


另请注意可选的第三个参数:System.Environment.SetEnvironmentVariable(variable,value,**EnvironmentVariableTarget**)可能的值为:*Machine*,*Process*和*User*

2> Nathan Bedfo..:

我在使用.NET控制台应用程序时遇到了这个问题来读取PATH环境变量,并发现使用System.Environment.GetEnvironmentVariable会自动扩展环境变量.

我不希望这发生......这意味着路径中的文件夹,例如'%SystemRoot%\ system32'被重写为'C:\ Windows\system32'.要获得未扩展的路径,我必须使用它:

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

对我来说就像一个魅力.


+1我必须使用此解决方案,因为Patrick Desjardins回答的另一个要求我拥有管理员权限.我能够在没有此解决方案管理员权限的情况下读取环境变量的值!

3> SpeedyNinja..:

这适用于作为机器设置的环境变量.对于用户,只需更改为用户.

String EnvironmentPath = System.Environment
                .GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);



4> Tom Stickel..:

获取和设置

得到

string getEnv = Environment.GetEnvironmentVariable("envVar");

string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);



5> Karthik Chin..:
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有