Windows Path 環境変数設定

毎度混乱する Path 設定。


PowerShell での操作

パスの一覧

PS> $ENV:Path

以下のようにすると、見やすい。

PS> $ENV:Path -split ';'

$ENV:Path.Split(";") でも可。

パスの設定

PS> $ENV:Path = "c:\foo\bar;" + $ENV:Path

末尾に追加する場合は以下で可

PS> $ENV:Path += ";c:\foo\bar"

環境変数への保存

PS> setx PATH "c:\foo\bar;$ENV:Path"

ユーザ環境変数へ保存される。システム環境変数に保存するには /M オプションで setx /M PATH "c:\foo\bar;$ENV:Path" のように指定する。


以下でも可能であるが、[Environment]::SetEnvironmentVariable は変数展開が行われなくなるので、前述の方が安全。

[Environment]::SetEnvironmentVariable(
   "Path",
   [Environment]::GetEnvironmentVariable("Path", "User") + ";c:\foo\bar",
   "User"
)

システム環境変数の場合は、管理者権限で、"User" を "Machine" に変えれば良い(2箇所とも)。

GUIから設定する場合は win キーで「env」から 「環境変数...」で設定。


コマンドプロンプトでの操作

パスの一覧

> path

echo %PATH% でも同じ。

なお、%Path% でも %path% でも同じだが、変数は大文字で書くことが多い。

パスの設定

> path c:\foo\bar;%PATH%

set PATH=c:\foo\bar;%PATH% でも同じ。

末尾に追加する場合は %PATH%;c:\foo\bar のように指定する(この場合は優先順位が低くなる)。が、わざわざ優先順位を低く追加するケースは無いであろう。

環境変数への保存

> setx PATH "c:\foo\bar;%PATH%"

ユーザ環境変数へ保存される。システム環境変数に保存するには /M オプションで setx /M PATH "c:\foo\bar;%PATH%" のように指定する。

GUIから設定する場合は win キーで「env」から 「環境変数...」で設定。