МОЕ ПРЕДЛОЖЕНИЕ ЭТО ОДИН
Я ПРОВЕРИЛ ЭТО, ЧТОБЫ ДОБАВИТЬ C: \ oracle \ x64 \ bin в Path навсегда, и это прекрасно работает.
$ENV:PATH
Первый способ просто сделать:
$ENV:PATH=”$ENV:PATH;c:\path\to\folder”
Но это изменение не является постоянным, $ env: path по умолчанию вернется к тому, что было раньше, как только вы закроете свой терминал powershell и снова откроете его. Это потому, что вы применили изменения на уровне сеанса, а не на уровне источника (то есть на уровне реестра). Чтобы просмотреть глобальное значение $ env: path, выполните:
Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH
или, более конкретно:
(Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH).path
Теперь, чтобы изменить это, сначала мы фиксируем исходный путь, который необходимо изменить:
$oldpath = (Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH).path
Теперь мы определяем, как должен выглядеть новый путь, в этом случае мы добавляем новую папку:
$newpath = “$oldpath;c:\path\to\folder”
Примечание. Убедитесь, что $ newpath выглядит так, как вы хотите, а если нет, то вы можете повредить свою ОС.
Теперь примените новое значение:
Set-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH -Value $newPath
Теперь сделайте еще одну последнюю проверку, чтобы выглядело так, как вы ожидаете:
(Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH).Path
Теперь вы можете перезапустить свой терминал powershell (или даже перезагрузить компьютер) и увидеть, что он больше не возвращается к своему старому значению. Обратите внимание, что порядок путей может измениться в алфавитном порядке, поэтому убедитесь, что вы проверили всю строку, чтобы упростить ее, вы можете разбить вывод на строки, используя точку с запятой в качестве разделителя:
($env:path).split(“;”)