Я пытаюсь добавить %JAVA_HOME%\bin
к Path
переменным среды с помощью скрипта Powershell.
Сама переменная JAVA_HOME
указывает на C:\Program Files\Java\jdk1.8.0_172
.
Когда я добавил%JAVA_HOME%\bin
вручную из окна Переменная среды
Затем вызовите эту строку кода из Powershell, чтобы получить значение Path
variable
[Environment]::GetEnvironmentVariable('Path', [System.EnvironmentVariableTarget]::Machine)
Похоже, что результат выполнения строки выше преобразует %JAVA_HOME%\bin
в фактический определенный мной путь C:\Program Files\Java\jdk1.8.0_172
.
Выходные данные выглядят следующим образом
...;C:\Program Files\nodejs;C:\Program Files\Java\jdk1.8.0_172\bin;
Но когда я добавил %JAVA_HOME%\bin
через скрипт Powershell с кодом ниже
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine) + "%JAVA_HOME%\bin", [EnvironmentVariableTarget]::Machine)
Затем снова запустите функцию GetEnvironmentVariable
, вывод отличается от того, когда я добавил путь через окно переменной среды.Он не преобразует %JAVA_HOME%\bin
в фактический путь.
Вывод выглядит следующим образом
....;C:\Program Files\nodejs\;C:\Program Files\Java\jdk1.8.0_172\bin;%JAVA_HOME%\bin
Ожидается ли это?Или я что-то упускаю?
Я могу просто добавить реальный путь к переменной Path
напрямую, но я хочу использовать переменную JAVA_HOME
, чтобы путь был в 1 месте.