Wie kann ich in PowerShell die Ausgabe eines Befehls in eine Textdatei umleiten?

Melden
  1. Grundlagen der Umleitung in PowerShell
  2. Verwendung des Umleitungsoperators >
  3. Anhängen an eine Datei mit >> Operator
  4. Verwendung von Out-File für erweiterte Optionen
  5. Umleitung von Fehlerausgaben
  6. Zusammenfassung

Grundlagen der Umleitung in PowerShell

In PowerShell kannst du die Ausgabe fast jedes Befehls sehr einfach in eine Textdatei umleiten. Diese Technik ist äußerst nützlich, wenn du Ergebnisse speichern oder später weiterverarbeiten möchtest. Anders als in der klassischen Eingabeaufforderung (cmd) bietet PowerShell mehrere Möglichkeiten zur Umleitung, die je nach Bedarf gewählt werden können.

Verwendung des Umleitungsoperators >

Der einfachste Weg, die Ausgabe eines Befehls in eine Datei zu schreiben, ist die Verwendung des Operators >. Dieser Operator schreibt die Ausgabe in die angegebene Datei und überschreibt dabei den Inhalt, falls die Datei bereits existiert.

Get-Process > prozesse.txt

Im Beispiel oben werden alle laufenden Prozesse mit Get-Process abgefragt und die Ausgabe in der Datei prozesse.txt gespeichert. Falls die Datei noch nicht vorhanden ist, wird sie erstellt. Existiert sie bereits, wird ihr Inhalt gelöscht und mit der neuen Ausgabe ersetzt.

Anhängen an eine Datei mit >> Operator

Wenn du die Ausgabe an eine bereits bestehende Datei anhängen möchtest, ohne den Inhalt zu überschreiben, verwendest du stattdessen den Operator >>. So bleibt der bestehende Inhalt erhalten und die neue Ausgabe wird am Ende ergänzt.

Get-Service >> dienste.txt

Dieses Beispiel hängt die Ausgabe des Befehls Get-Service an die Datei dienste.txt an. Falls die Datei nicht existiert, wird sie ebenfalls neu angelegt.

Verwendung von Out-File für erweiterte Optionen

PowerShell stellt außerdem das Cmdlet Out-File bereit, das noch flexiblere Möglichkeiten zur Ausgabe bietet. Zum Beispiel kannst du mit Out-File die Zeichencodierung bestimmen oder sicherstellen, dass bestehende Dateien überschrieben oder angehängt werden.

Get-Content datei.txt | Out-File -FilePath output.txt -Encoding UTF8

In diesem Beispiel liest Get-Content datei.txt eine Datei aus und gibt deren Inhalt an Out-File weiter, das die Ausgabe in output.txt in UTF-8 Codierung speichert. Standardmäßig überschreibt Out-File die Datei. Mit dem Parameter -Append kannst du auch hier anhängen, ähnlich wie beim >> Operator.

Umleitung von Fehlerausgaben

Manchmal möchtest du nicht nur die Standardausgabe (auch "stdout") umleiten, sondern auch Fehlermeldungen (Standardfehler, "stderr"). In PowerShell kannst du Error-Ausgaben mit 2> umleiten. Möchtest du beides in eine Datei schreiben, kannst du die Ausgaben zusammenführen.

Get-Process xyz 2>&1 > ausgabe.txt

Hier wird die Fehlermeldung des Befehls Get-Process xyz (der Prozess "xyz" existiert vermutlich nicht) zusammen mit der Standardausgabe in ausgabe.txt gespeichert. Die Reihenfolge der Umleitungen ist dabei wichtig, da PowerShell die Streams in einer bestimmten Reihenfolge verarbeitet.

Zusammenfassung

Zusammenfassend kannst du die Ausgabe in PowerShell ganz einfach mit > in eine Datei schreiben, mit >> an eine Datei anhängen oder mit Out-File erweiterte Steuerung über den Ausgabeprozess erhalten. Solltest du Fehlerausgaben separat oder zusammen mit der Standardausgabe speichern wollen, helfen dir die Umleitungsoperatoren 2> und 2>&1.

0
0 Kommentare