Я з'ясував, що установка змінної оточення PATH впливає тільки на старий командний рядок. PowerShell, схоже, має інші налаштування середовища. Як змінити змінні середовища для PowerShell (v1)?
Примітка:
Я хочу зробити свої зміни постійними, тому мені не потрібно встановлювати їх при кожному запуску PowerShell. Чи є у PowerShell файл профілю? Щось на зразок профілю Bash в Unix?
Якщо в якийсь момент під час сеансу PowerShell вам потрібно тимчасово долучитися до змінної оточення PATH, ви можете зробити це таким чином:
$env:Path += ";C:\Program Files\GnuWin32\bin"
Зміна актуальних змінних оточення може бути виконана за допомогою
використовуючи інформацію env: простір імен/диск
. Наприклад, такий
код оновить змінну оточення path:
$env:Path = "SomeRandomPath"; (replaces existing path)
$env:Path += ";SomeRandomPath" (appends to existing path)
Існують способи зробити налаштування середовища постійними, але
якщо ви використовуєте їх тільки з PowerShell, можливо
набагато краще використовувати ваш профіль для ініціювання
параметрів. При запуску PowerShell буде запускати будь-які .ps1 файли
файли, які він знайде в каталозі WindowsPowerShell
в
папці Мої документи. Зазвичай у вас вже є файл profile.ps1
файл вже є в цьому каталозі. Шлях на моєму комп'ютері наступний
C:\Users\JaredPar\Documents\WindowsPowerShell\profile.ps1
Ви також можете змінити користувацькі/системні змінні середовища постійно (тобто вони будуть постійними при перезапуску оболонки) за допомогою наступних дій:
Зміна системної змінної оточення
[Environment]::SetEnvironmentVariable
("Path", $env:Path, [System.EnvironmentVariableTarget]::Machine)
Змінити змінну оточення користувача
[Environment]::SetEnvironmentVariable
("INCLUDE", $env:INCLUDE, [System.EnvironmentVariableTarget]::User)
Використання з коментарів - додати в системну змінну оточення
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + ";C:\bin",
[EnvironmentVariableTarget]::Machine)
Рядкове рішення також можливе, якщо ви не хочете писати типи
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", "Machine")