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?

Antworten:


156

Kürzere Version:

gci env:* | sort-object name

Dies zeigt sowohl den Namen als auch den Wert an.


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


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

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*'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.