C# a c中的环境变量#

C# a c中的环境变量#,c#,command-line,C#,Command Line,我正在使用以下命令为c#控制台应用程序中的环境变量设置一个值 System.Environment.SetEnvironmentVariable(envvar, result,EnvironmentVariableTarget.Process); 在命令窗口中运行应用程序后,当我尝试回显该变量时,我看不到该值。 我必须在批处理文件中使用此应用程序。 我想要像SET命令这样的功能。请帮忙 编辑: 我尝试使用System.Environment.SetEnvironmentVariable(en

我正在使用以下命令为c#控制台应用程序中的环境变量设置一个值

 System.Environment.SetEnvironmentVariable(envvar, result,EnvironmentVariableTarget.Process);
在命令窗口中运行应用程序后,当我尝试回显该变量时,我看不到该值。 我必须在批处理文件中使用此应用程序。 我想要像SET命令这样的功能。请帮忙

编辑: 我尝试使用System.Environment.SetEnvironmentVariable(envvar、result、EnvironmentVariableTarget.user)并传播我尝试过的更改。但是我不能在同一个命令窗口中回显变量

让我重新表述一下问题:
我想在c#中为环境变量设置一个值。我必须能够在同一命令窗口中使用该变量(即我不应该打开新的cmd窗口来查看更改)。我们使用SET命令,可以立即使用该变量。。rt?我想要这样的功能。Plzz帮助,以查看当前批处理过程中的环境。您必须在程序中将其作为字符串输出,并在批处理文件中解析它和调用集


或者您可以尝试EnvironmentVariableTarget.User。当使用此选项设置时,env将在所有新流程中可见。

当您使用EnvironmentVariableTarget时。流程变量集将仅在当前流程中可见,如本示例所示:

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.Process);
string s = System.Environment.GetEnvironmentVariable("myVar",EnvironmentVariableTarget.Process);
上面的myVar将显示s=“myValue”,但在命令窗口中不可见

如果要设置在命令窗口可见的值,则需要使用EnvironmentVariableTarget。用户:

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.User);
这样,将存储设置myVar=myValue,然后您可以在命令窗口中看到


详细示例位于

使用此方法创建的环境变量在当前进程中可见。我尝试使用EnvironmentVariableTarget.User。正在当前用户下创建新的env var,但新创建的变量对批处理文件不可见。如果关闭并打开一个新的命令窗口,则可以使用该变量。我看到了一些在Env变量中传播更改的解决方案,但我不确定如何将它们包含在我的程序中。。我的程序名是test.exe。我将以以下方式在批处理文件中使用它。“test var:=asdf”。预期的输出是“var”应该被赋值为“asdf”,我应该能够通过在bacth文件的其余部分中使用%var%来获得该值。