繁体   English   中英

ac#中的环境变量

[英]environmental variable in a c#

我正在使用以下命令在ac#Console应用程序中为环境变量设置一个值。

 System.Environment.SetEnvironmentVariable(envvar, result,EnvironmentVariableTarget.Process);

在命令窗口中运行该应用程序后,当我尝试回显该变量时,看不到该值。 我必须在批处理文件中使用此应用程序。 我想要类似SET命令的功能。 请帮忙..

编辑:我尝试使用System.Environment.SetEnvironmentVariable(envvar,result,EnvironmentVariableTarget.user)并传播更改,我尝试了此Env VAr中的传播更改 但是我无法在同一命令窗口中回显该变量。

让我重新表述这个问题:我想在c#中为Env Var设置一个值。 我必须能够在同一命令窗口中使用该变量(即,我不应该打开新的cmd窗口来查看更改)。 我们使用SET命令,我们可以立即使用该变量。 我想要这样的功能。 请帮助

当您使用EnvironmentVariableTarget.Process时,变量集将仅在当前进程中可见,如您在此示例中看到的:

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.Process);
string s = System.Environment.GetEnvironmentVariable("myVar",EnvironmentVariableTarget.Process);

myVar上方将显示s =“ myValue”,但在命令窗口中不可见。

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

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.User);

这样,将存储设置myVar = myValue,然后您可以在命令窗口中看到。

详细样本位于此处

为了查看当前批处理中的环境。 您必须在程序中将其输出为字符串,然后解析它并在批处理文件中调用set。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM