尝试检索环境变量返回 null
我已使用以下命令为用户设置了一个变量。
c:\>set some="C:\programfiles\win\something"
当我尝试使用 System.Environment.GetVariable("something")
获取变量时,我得到的值为空。
请问谁能解释一下这个问题吗?
I have set a variable to the user with the below command.
c:\>set something="C:\programfiles\win\something"
When I try to get the variable using System.Environment.GetVariable("something")
, I get the value as null.
Please can anyone explain the problem on this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果使用
set
命令设置环境变量,则该变量实际上仅在当前控制台中设置。因此,如果您有一个打印出名为var.exe
的变量something
的应用程序,它可以正常工作:但是如果您从另一个控制台(或没有控制台)运行相同的应用程序,该变量将不会被设置。
看来您无法使用
set
命令全局设置环境变量。但是您可以使用Environment.SetEnvironmentVariable()< 从 .Net 应用程序执行此操作/code>
(通过指定
target
参数)或在 Windows 的“环境变量”窗口中手动设置。If you set environment variable using the
set
command, that variable is actually set only in the current console. So, if you have application that prints out the variablesomething
calledvar.exe
, it works fine:But if you run the same application from another console (or without one), the variable won't be set.
It seems you can't set environment variable globally using the
set
command. But you can do it from .Net application usingEnvironment.SetEnvironmentVariable()
(by specifying thetarget
parameter) or manually from Windows in the “Environment variables” window.set 命令仅在控制台范围内设置变量。您可以在系统属性中设置此变量,而不是这样做。
set command sets the variable only in console scope. Instead of doing this you can set this variable in system properties.