2010-11-28 82 views
1

我运行这个ps命令:什么会导致[Environment] :: SetEnvironmentVariable默默失败?

PS C:\Windows\system32> [Environment]::SetEnvironmentVariable("Path" 
, $env:Path + "; D:\Program Files (x86)\Java\bin" 
, System.EnvironmentVariableTarget]::Machine) 

我已经开始的PowerShell作为管理员。对我来说,该命令应该将“; D:\ Program ...”字符串添加到当前机器的Path变量中。然而,它没有,也没有失败。我究竟做错了什么?

回答

3

这对我的作品,并不需要重新启动控制台

PS C:\Users> $env:Path = "$($env:Path);c:\Scripts" 
PS C:\Users> $env:Path 
%SystemRoot%\system32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System 
32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft Application Virtualization Client;C:\Program Files (x86)\Co 
mmon Files\Roxio Shared\DLLShared\;c:\Scripts 

这仅适用于当前会话,虽然。如果需要保存更新的路径变量,则需要在问题中使用该方法并重新启动该shell。

0

嗯,在不久后找到答案:你必须重新启动powershell才能看到任何修改过的环境变量。

+0

只有在使用.net方法时......是否需要在整个环境中进行设置,还是仅在PowerShell环境中才有必要? – 2010-12-01 06:56:03

+0

对于这种情况,我需要Java。所以所有的enviros。 – jcollum 2010-12-01 16:24:16