2010-11-28 35 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