2010-11-28 6 views
1

私はこのpsコマンドを実行しています:何が[環境] :: SetEnvironmentVariableを静かに失敗させるでしょうか?

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

私は管理者としてpowershellを開始しました。私にとっては、そのコマンドは現在のマシンのPath変数に "; D:\ Program ..."文字列を追加するべきです。しかし、それはないし、失敗はありません。私は間違って何をしていますか?

答えて

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 

を再起動する必要はありません。更新されたパス変数を保持する必要がある場合は、そのメソッドを使用してシェルを再起動する必要があります。

+0

良いチップ、ありがとう。なぜ再起動する必要があるのか​​、他のものは必要ないのだろうか? – jcollum

+0

ところで、私が示したヒントは、現在のセッションでのみ有効です。 PowerShellを再起動すると、$ env:Pathは元の値に戻ります。私はこれを啓発するために私の答えを編集しました。 – ravikanth

+0

はい、$ env:Profile、または$ env:CurrentUserAllHostsプロファイルに追加することができ、セッションを開始するたびに追加されます。 –

0

ああ、少し後に答えが見つかりました:あなたはを再起動しなければなりませんpowershell変更された環境変数を参照してください。

+0

.netメソッドを使用している場合のみ...環境全体に設定する必要がありますか、それともpowershell環境でのみ必要ですか? –

+0

この状況では私はJavaのために必要でした。だからすべてのenviros。 – jcollum

関連する問題