Wyświetl wszystkie zmienne środowiskowe z uruchomionego skryptu programu PowerShell


104

Muszę wyświetlić wszystkie skonfigurowane zmienne środowiskowe w skrypcie programu PowerShell w czasie wykonywania. Zwykle podczas wyświetlania zmiennych środowiskowych mogę po prostu użyć jednej z następujących technik w powłoce (między innymi, ale są to proste):

gci env:*
ls Env:

Jednak mam skrypt wywoływany z innego programu, a kiedy używam jednego z powyższych wywołań w skrypcie, zamiast przedstawiania zmiennych środowiskowych i ich wartości, zamiast tego otrzymuję listę System.Collections.DictionaryEntrytypów zamiast zmiennych i ich wartości . Jak mogę wyświetlić wszystkie zmienne środowiskowe wewnątrz skryptu programu PowerShell?

Odpowiedzi:


156

Krótsza wersja:

gci env:* | sort-object name

Spowoduje to wyświetlenie zarówno nazwy, jak i wartości.


1
Czy mógłbyś wyjaśnić, dlaczego tak się zachowuje i jak twoje polecenie to naprawia?
David Ferenczy Rogožan

3
To znak postępu, ponieważ envbyło to zbyt łatwe. Cholera, ludzie M $.
matcheek


14

W końcu znalazłem rozwiązanie, przeglądając każdy wpis w słowniku:

(gci env:*).GetEnumerator() | Sort-Object Name | Out-String

nie działa na Linuksie dla mnie. Brakuje Ci gciprzedmiotów podrzędnych?
Thufir

Nie próbowałem tego na PowerShell Core, ale gci jest w mojej odpowiedzi. Zwróć uwagę, że to pytanie dotyczy [powershell], a nie [powershell-core], więc rozwiązania mogą nie działać w przypadku tego drugiego.
Bender the Greatest

7

Krótka wersja z filtrem dzikiej karty :

gci env: | where name -like 'Pro*'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.