PowerShellで環境変数PATHを追加・削除・置換する
複数のバージョンのアプリをインストールしておき、環境変数PATH の変更だけでバージョンを切り替えて起動させたいときなど、
システム設定の 環境変数PATH には保存しておかずに、起動した PowerShell の中だけで 環境変数PATH を置き換えたいことが良くあるのですが、
たまにしか操作しないとすぐに忘れてしまうので、
PowerShell で 環境変数PATH に(一時的にパスを)追加・削除・置換する方法を忘備録としてまとめてみました。
項目 | コマンド |
---|---|
表示 | $ENV:Path $ENV:Path.Split(";") |
追加(先頭) | $ENV:Path="追加したいパス;"+$ENV:Path または Set-Item Env:Path "追加したいパス;$ENV:Path" |
追加(末尾) | $ENV:Path+=";追加したいパス" または Set-Item Env:Path $Env:Path";追加したいパス" |
削除 | Set-Item ENV:Path $ENV:Path.Replace("削除したいパス;", "") |
置換 | Set-Item ENV:Path $ENV:Path.Replace("置換前のパス;", "置換後のパス;") |
解説
1. 環境変数PATHを表示する
2. 環境変数PATHに新たなパスを追加する
3. 環境変数PATHの一部を削除する
4. 環境変数PATHの一部を置換する
1. 環境変数PATHを表示する
PowerSehll では以下の操作で 環境変数PATH の内容を確認できます。
PS C:\> $ENV:Path
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\username\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Java\jre1.8.0_241\bin;
C:\Program Files\Java\jdk-13.0.2\bin;C:\Users\username\go\bin;C:\Programs\Microsoft VS Code\bin;C:\Program Files (x86)\sakura;
文字列としてそのまま表示すると、パスごとの区切りが見ずらいので、
出力結果を Splitメソッド を使って ";" で分離して表示すると見やすくなります。
PS C:\> $ENV:Path.Split(";")
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Users\username\AppData\Local\Microsoft\WindowsApps
C:\Program Files (x86)\Java\jre1.8.0_241\bin
C:\Program Files\Java\jdk-13.0.2\bin
C:\Users\username\go\bin
C:\Programs\Microsoft VS Code\bin
C:\Program Files (x86)\sakura
2. 環境変数PATHに新たなパスを追加する
以下のコマンドを実行すると、環境変数PATH の末尾に、一時的にパスを追加することができます。
パスの末尾には、区切り文字の ";" を入れ忘れないように注意してください。
2-1. 先頭に追加
$ENV:Path="追加したいパス;"+$ENV:Path
または、
Set-Item Env:Path "追加したいパス;$ENV:Path" <--- $ENV:Pathも含めて""で囲むこと
2-2. 末尾に追加
$ENV:Path+=";追加したいパス"
または、
Set-Item Env:Path $Env:Path";追加したいパス" <--- ""で囲むのは追加したいパスのみで良い
3. 環境変数PATHの一部を削除する
環境変数PATH の中から一部のパスを削除したい場合は、
削除したいパスの文字列を Replaceメソッド を使って 空文字列"" に置換し、
Set-Itemコマンドレット を使って再セットすると良いでしょう。
Set-Item ENV:Path $ENV:Path.Replace("削除したいパス;", "")
4. 環境変数PATHの一部を別のパスに置き換える
環境変数PATH の中から一部のパスを置き換えたい場合は、
置き換えたいパスの文字列を Replaceメソッド を使って新たなパスに置換し、
Set-Itemコマンドレット を使って再セットすると良いでしょう。
Set-Item ENV:Path $ENV:Path.Replace("置換前のパス;", "置換後のパス;")