環境変数の操作 - env
環境変数一覧を取得する
Get-ChildItem env:
dir env: # エイリアス
システム環境変数・ユーザー環境変数それぞれの一覧を取得する
[Environment]::GetEnvironmentVariables("Machine") # システム環境変数一覧
[Environment]::GetEnvironmentVariables("User") # ユーザー環境変数一覧
[Environment]::GetEnvironmentVariables("Process") # dir env: と同等
環境変数を検索する
Get-ChildItem -Path env:*user*
環境変数を取得する
Get-ChildItem env:APPDATA
ユーザー環境変数を取得する
[Environment]::GetEnvironmentVariable("Path", "User")
環境変数を修正する
$env:Path += ";C:\foo\bin"
永続的に環境変数を修正する
[Environment]::SetEnvironmentVariable( "foo", 123, [System.EnvironmentVariableTarget]::Machine )
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", [EnvironmentVariableTarget]::Machine
%APPDATA%などの変数記法を使う場合:
[environment]::SetEnvironmentVariable("VIM", "%APPDATA%\Vim", "User")
コマンドプロンプトを使う場合
setx Path "c:\java\bin"
SetEnvironmentVariable()でPATHを指定するのは危険 🚩
- SetEnvironmentVariable()で”Machine"や"User"を指定するとレジストリを変更することになるが、間違ってPATHを指定するとシステムに重大な障害が発生する
- したがって、特別な理由がない限りは使わない方がいい
参考