Переменные среды в PowerShell с точкой (.) в названии
-
10-07-2019 - |
Вопрос
Я знаю, что могу получить доступ к переменным среды в PowerShell, используя $Env
.Например, я могу получить доступ FOO
с $Env:FOO
.
Я не могу понять, как получить доступ к вызываемой переменной окружения FOO.BAR
.
$Env:FOO.BAR
не работает.Как я могу получить к этому доступ из PowerShell?
Решение
Чтобы получить доступ к любому виду переменной PowerShell, где имя содержит не алфавитно-цифровые символы, используйте обозначение $ {…}, как в:
${env:variable.with.dots} = "Hi there"
${env:variable.with.dots}
Это работает для переменных на любом диске (реестр, файловая система и т. д.)
Другие советы
Используйте метод .NET, чтобы получить переменную:
[Environment]::GetEnvironmentVariable("FOO.BAR")
Использование:
Get-WMIObject Win32_Environment -filter "name='foo.bar'"
Не связан с StackOverflow