コンテンツにスキップ

Top

PowerShellで一時的に環境変数のPathを追加する

Windows のPathを追加したいなら環境変数のPathを書き換えればいいけど、一時的に変えたい場合は、コマンドプロンプトなら、

set PATH=%PATH%;C:\Program Files\hoge;
みたいな感じ。PATHという文字がそのまま環境変数のPATHになっている。

が、PowerShellで同じことをやるとエラーになる。
PowerShellで環境変数のPathを変えるには、

$ENV:Path += "C:\Program Files\hoge;"
といった感じで、ENVが環境変数を表してるのでネームスペース的な感じでよいのだが、覚えるの面倒だから毎回このページ開いて確認しそう(笑)

表示はそのまま、

$ENV:Path 
としたら表示される。Get-Itemを使うと、
 Get-Item -Path ENV:\Path
な感じ。注意が必要なのは、$ENVでもなければPathでもない点。 ENV:\Pathな点に注意。
なんでそんなどうでもいいことを言っているかというと次の削除の話の時によく間違えるので。

で、追加は容易だったが、削除はどうするか。

なんと文字列置換で対応することになる。
そんな馬鹿なと思うかもしれないがそれしか方法がない。

Set-Item ENV:\Path $ENV:Path.Replace("C:\Program Files\hoge;", "")
これで置換される(言い換えると消える)

この時ありがちな間違いが、
Set-Item $ENV:Path
としちゃうこと。
こうするとエラーになってうまくいかない。
Get-Itemの時同様、ENV:¥Pathにしないといけない。

以上!