c# - 在 C# 中设置/获取命令行系统变量

标签 c# variables command-line system

当我打开 Windows 命令提示符并键入“set”然后回车时,我会得到一个系统变量列表。

如何使用 visual studio 在 C# 中设置/获取它们?

我试过:

System.Environment.SetEnvironmentVariable("TestVariableName", "test123");

但是,当我在命令行中键入“set”时,我没有看到名为“TestVariableName”且值为“test123”的新变量。

我做错了什么?

谢谢

最佳答案

首先,您使用的 SetEnvironmentVariable 重载“创建、修改或删除存储在当前进程中的环境变量。” (http://msdn.microsoft.com/en-us/library/system.environment.setenvironmentvariable.aspx?ppud=4)。

你应该使用 this overloadEvironmentVariableTarget Machine 的值,如果您希望它影响其他程序。

其次,环境变量是在进程启动时从系统或父进程复制的,即使在更广泛的系统中发生更改,从正在运行的应用程序的角度来看也永远不会更改。

在您的情况下,设置变量后启动一个新的命令行实例,您应该会看到您的变量。

关于c# - 在 C# 中设置/获取命令行系统变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9164123/

相关文章:

windows - 如何从另一个 Windows 批处理脚本调用一个 Windows 批处理脚本,并在两者中都启用延迟扩展

bash - 无法从 shell 脚本调用 openscad -D 命令行

c# - 如何创建将在子目录中搜索插件的 DirectoryCatalog

c# - nhibernate中的HasOne和References有什么区别?

c# - 从用户定义的表更新多个表

python - 使用 Python 从 linux 命令行读取

Bash 脚本打印命令,但不打印 echo 命令

c# - 如何从同一个表中的两个不同列读取数据并在字符串生成器中返回?

java - 什么是初始化所有这些的更干净、更优雅的方法?

ruby - 在 Ruby 中卡住变量不起作用