Используя PowerShell, я могу получить все переменные среды (текущего процесса), отформатировать и отсортировать их:
gci env: | %{"{0}={1}" -f $_.Name,$_.Value} | sort
который дает:
a=foo
b=bar
c=baz
Но это дает все переменные процесса, а мне нужны только пользовательские переменные, поэтому я делаю:
[Environment]::GetEnvironmentVariables("User") | %{"{0}={1}" -f $_.Name,$_.Value} | sort
Но это выводит только это:
=
В [Environment]::GetEnvironmentVariables("User")
работает, проблема после этого.
Проблема в том, что [Environment]::GetEnvironmentVariables("User")
возвращает хеш-таблицу, а не набор объектов. Есть несколько способов получить желаемое. Вот один из них:
([Environment]::GetEnvironmentVariables("User")).GetEnumerator() | %{'{0} = {1}' -f $_.Key, $_.Value}