PowerShell: Env: Vermeiden Sie das Abschneiden von Umgebungsvariablen

16

PowerShell zeigt Umgebungsvariablen mit jeweils einer Zeile an. Wenn eine Variable einen ausreichend langen Wert hat, wird sie abgeschnitten und mit Auslassungspunkten versehen:

> gci env:

Name                           Value
----                           -----
<suppressed lines>
PSModulePath                   C:\Windows\system32\WindowsPowerSh...
<suppressed lines>

Gibt es eine Möglichkeit, vollständige Werte für alle Variablen gleichzeitig zu erhalten, wie bei einer standardmäßigen cmd-Eingabeaufforderung? (Die Antworten für Powershell get-childitem env: path geben eine Zeile mit Auslassungspunkten zurück. Wie kann man etwas Nützliches haben? Gilt dann nicht.)

sancho.s Setzen Sie Monica wieder ein
quelle
Ich habe eine Stunde lang nach Möglichkeiten gesucht, wie PowerShell den gesamten Inhalt meiner Pfadumgebungsvariablen anzeigen kann. Es wird immer auf 2452 Zeichen mit oder ohne Auslassungszeichen gekürzt, auch wenn ich eine breitere Formatierung angegeben habe. Dies macht es unmöglich, PS als etwas anderes als trivial Nützliches zu behandeln. Meiner Meinung nach ist PS ein POS und daran hat sich nichts geändert. Ich habe Hunderte von Blogs und Suchergebnissen gelesen und niemand hat eine Lösung. Nicht einmal hier.
Suncat2000,

Antworten:

21

Die Standardformatierung wird abgeschnitten. Geben Sie -Wrap an und sehen Sie die vollständige Ausgabe.

gci env: | Format-Table -Wrap -AutoSize

Ergebnis

PSModulePath            C:\Users\KNUCKLE-DRAGGER\Documents\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

Oder wenn Sie möchten, dass die Ausgabe cmd.exe exakt simuliert, versuchen Sie es

cmd /c start /b set

Ergebnis

PSModulePath=C:\Users\KNUCKLE-DRAGGER\Documents\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
Schlagring
quelle
Das ist schon sehr gut. Gibt es eine Möglichkeit, dasselbe Format wie bei einer Standard-Cmd-Eingabeaufforderung zu erhalten? Rufen Sie möglicherweise cmd.exe über die PowerShell-Eingabeaufforderung auf?
sancho.s Reinstate Monica
Gut, das habe ich vorgeschlagen.
sancho.s Wiedereinsetzung von Monica
4

Wenn Sie die setAusgabe von Powershell ohne Aufruf emulieren möchten, cmdversuchen Sie Folgendes :

dir env: | %{"{0}={1}" -f $_.Name,$_.Value}

viel tippen, also packe es in eine Funktion:

function set {dir env: | %{"{0}={1}" -f $_.Name,$_.Value}}
zdan
quelle
Beide Optionen funktionieren in Ordnung.
sancho.s Monica