- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PowerShell/環境情報/環境変数Pathの操作 へ行く。
- 1 (2018-08-21 (火) 03:45:50)
- 2 (2018-08-21 (火) 03:46:14)
- 3 (2019-04-30 (火) 11:46:17)
環境変数Pathの操作
Pathを見やすく一覧表示する
PS> $env:path -split ';' C:\Windows\system32 C:\Windows C:\Windows\System32\Wbem C:\Windows\System32\WindowsPowerShell\v1.0\ C:\Program Files\Git\cmd C:\Program Files\TortoiseSVN\bin C:\Program Files\TortoiseGit\bin C:\Program Files\nodejs\ C:\Users\taro\AppData\Local\Microsoft\WindowsApps C:\Users\taro\AppData\Roaming\npm
Pathにパスを追加する (一時的)
PS> $env:path += ";C:\PHP\bin" # C:\PHP\binを追加 PS> $env:path += ";$(pwd)\bin" # カレントディレクトリ以下のbinをPathに加える PS> $env:path = "C:\PHP\bin;$env:path" # C:\PHP\binを先頭に追加
- なお、このように追加した場合は、PowerShellを起動しなおすとその追加は消える。
Pathにパスを追加する (永続的)
PS> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\apps\vim", [EnvironmentVariableTarget]::Machine) # (1) PS> [environment]::SetEnvironmentVariable("Path", $env:Path + ";%USERPROFILE%\bin", "User") # (2)
- システム環境変数のPathに指定する場合は(1)のように"Machine"を、ユーザー環境変数に指定する場合は(2)のように"User"を指定する
- (2)のように"%USERPROFILE%"と書くとPathを参照する際にパラメーター展開するので、"C:\Users\Taro\bin"のようにフルパスをハードコーディングするよりもポータビリティーが上がる
setxコマンドを使う
PS> setx PATH "$env:path;C:\PHP\bin" # ユーザー環境変数のPathを指定 PS> setx PATH "$env:path;%USERPROFILE%\bin" /m # システム環境変数のPathを指定
- SetEnvironmentVariable()はタイプするのが面倒なので、コマンドラインから実行するにはsetxコマンドを使った方が簡単
PowerShellプロファイルでPathを指定する
PS> notepad.exe $profile # メモ帳でPowerShellプロファイルを開く ----- $env:path += ";C:\PHP\bin" -----
- SetEnvironmentVariable()やsetxコマンドはレジストリのPathを書き換えるけれども、そもそもコマンドラインからの操作は間違えるとPathを壊しかねないので、普通にコントロールパネルからGUIで設定した方が無難と思う
- そこで、PowerShellからしか使わないコマンドなら、PowerShellのプロファイルファイルでPathを指定する方が管理しやすいと思う
Pathレジストリ情報の確認
Get-ItemProperty -Path "HKCU:Environment" -Name Path Get-ItemProperty -path "HKLM:\System\CurrentControlSet\Control\Session Manager\Environment" -Name Path
参考
https://stackoverflow.com/questions/714877/setting-windows-powershell-path-variable