Мое предложение таково:
Я проверил это, чтобы добавить 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(“;”)