Help us understand the problem. What is going on with this article?

PowerShellで環境変数PATHにパスを追加・削除・置換する

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 の内容を確認できます。

PowerShell
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メソッド を使って ";" で分離して表示すると見やすくなります。

PowerShell
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("置換前のパス;", "置換後のパス;")
gx3n-inue
Network/Infrastructure Engineer Language:C/C++/C#/VB.NET/VBA/Java/Python/Golang/PowerShell/Bash NW:Cisco/Foundry/Extream/Fortigate/Juniper/CheckPoint/NEC/Fujitsu/AlliedTelesis/YAMAHA
https://www.vector.co.jp/vpack/browse/person/an060626.html
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away