2 Stimmen

Powershell-Ausgabe

Ich habe ein kleines Problem mit der Steuerung der Ausgabe in ps. Hier ist die betreffende Codezeile;

$result|sort-object cn  | format-table -wrap -autosize 

Wenn ich anhänge

| out-file $logfile

die letzte Spalte meiner Ausgabe ist abgeschnitten. Nun weiß ich, dass meine Ausgabe in Ordnung ist, wenn ich die Breite meiner Konsolensitzung ändere und das Skript erneut ausführe, aber es muss doch einen besseren Weg geben, dies zu tun? Ich habe auch versucht, add-content zu verwenden, aber ich glaube, ich muss etwas übersehen, da der Ausdruck nicht korrekt ausgewertet wird und ich nur eine Reihe von Verweisen auf system-object in meiner Protokolldatei erhalte.

4voto

Andy Schneider Punkte 8314

Sie können den Parameter -width für das Cmdlet "out-file" verwenden. Sie können out-file -width 500 ausprobieren, damit nichts abgeschnitten wird.

1voto

Glenn Punkte 1429

Der beste Weg, den ich bisher gefunden habe, ist die Verwendung von Out-String mit einer -Width, die länger ist, als die gesamte Zeile sein soll:

$result | Format-Table -Autosize | Out-String -Width 4096

Das einzige Problem bei dieser Methode ist, dass die gesamte Zeile mit Leerzeichen aufgefüllt wird. Um das zu umgehen, fügen Sie den Schalter -Stream und .Trim() für jede Zeile hinzu:

$result | Format-Table -Autosize | Out-String -Width 4096 -Stream | %{ $_.Trim() }

Dies ist auch nützlich, um die Ergebnisse mit clip.exe in die Zwischenablage zu übertragen (wenn ich das PSCX-Modul mit dem Befehl Out-Clipboard nicht installiert habe):

$result | Format-Table -Autosize | Out-String -Width 4096 -Stream | %{ $_.Trim() } | clip.exe

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X