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

c# .net .net-2.0 environment-variables

151194 观看

6回复

4066 作者的声誉

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

作者: Mister Dev 的来源 发布者: 2008 年 10 月 8 日

回应 (6)


229

90224 作者的声誉

决定

使用System.Environment类。

方法

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

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

会为你做的工作。

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

作者: Patrick Desjardins 发布者: 08.10.2008 10:44

11

206 作者的声誉

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

String EnvironmentPath = System.Environment
                .GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
作者: SpeedyNinja 发布者: 04.05.2010 05:59

30

6045 作者的声誉

我在使用.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);

对我来说就像一个魅力。

作者: Nathan Bedford 发布者: 23.03.2012 07:11

6

4611 作者的声誉

Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
作者: Karthik Chintala 发布者: 01.08.2012 01:17

8

13236 作者的声誉

获取和设置

得到

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

string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
作者: Tom Stickel 发布者: 10.06.2013 10:34

1

13 作者的声誉

我可以使用以下内容更新环境变量

string EnvPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty;
if (!string.IsNullOrEmpty(EnvPath) && !EnvPath .EndsWith(";"))
    EnvPath = EnvPath + ';';
EnvPath = EnvPath + @"C:\Test";
Environment.SetEnvironmentVariable("PATH", EnvPath , EnvironmentVariableTarget.Machine);
作者: Ajit 发布者: 25.08.2016 09:46
32x32