Zeigen Sie alle Umgebungsvariablen in einem laufenden PowerShell-Skript an

104

Ich muss alle konfigurierten Umgebungsvariablen zur Laufzeit in einem PowerShell-Skript anzeigen. Normalerweise kann ich beim Anzeigen von Umgebungsvariablen nur eine der folgenden Optionen in der Shell verwenden (unter anderem sind diese Techniken einfach):

gci env:*
ls Env:

Ich habe jedoch ein Skript, das von einem anderen Programm aufgerufen wird, und wenn ich einen der oben genannten Aufrufe im Skript verwende, anstatt Umgebungsvariablen und deren Werte anzuzeigen, erhalte ich stattdessen eine Liste von System.Collections.DictionaryEntryTypen anstelle der Variablen und ihrer Werte . Wie kann ich in einem PowerShell-Skript alle Umgebungsvariablen anzeigen?

Bender der Größte
quelle

Antworten:

156

Kürzere Version:

gci env:* | sort-object name

Dies zeigt sowohl den Namen als auch den Wert an.

jaymjarri
quelle
Können Sie bitte erklären, warum es sich so verhält und wie Ihr Befehl es behebt?
David Ferenczy Rogožan
2
Das ist das Zeichen des Fortschritts, weil enves zu einfach war. Verdammt, M $ Leute.
Matcheek
36

Kürzeste Version (mit nach Namen sortierten Variablen):

gci env:
Vlad Rudenko
quelle
14

Ich habe mich schließlich zu einer Lösung durchgearbeitet, indem ich jeden Eintrag im Wörterbuch durchlaufen habe:

(gci env:*).GetEnumerator() | Sort-Object Name | Out-String
Bender der Größte
quelle
läuft für mich nicht unter Linux. Vermissen gciSie die untergeordneten Gegenstände?
Thufir
Ich habe dies nicht auf Powershell Core versucht, aber gci ist in meiner Antwort. Beachten Sie, dass diese Frage für [Powershell] und nicht für [Powershell-Core] gilt, sodass Lösungen für letztere möglicherweise nicht funktionieren.
Bender der Größte
7

Kurzversion mit Platzhalterfilter :

gci env: | where name -like 'Pro*'
Emil
quelle