PowerShell-Ausgabe in eine Textdatei exportieren

Migel Hewage Nimesha 1 April 2022
PowerShell-Ausgabe in eine Textdatei exportieren

PowerShell ist eines der wichtigsten Tools, bestehend aus einem CLI (Command Line Interface). Es besteht aus einer Skriptsprache, die in Automatisierungsfunktionen verwendet werden kann, und einem Konfigurationsmanagement-Framework, das in einer CI/CD-Umgebung verwendet werden kann. PowerShell unterstützt die Betriebssysteme Windows, Linux und macOS.

PowerShell-Befehle stellen ihre Standardausgabe als Druckzeile in der Befehlszeilenschnittstelle bereit. Wir können mehrere Befehle in PowerShell verwenden, um Ausgaben in verschiedenen Ansichten zu erhalten.

Eine der wichtigsten Anforderungen der meisten Benutzer ist es, die Ausgabe aus der Befehlszeilenschnittstelle von PowerShell herauszuholen. Das heißt, die Ausgabe in eine Textdatei zu bekommen. Wir können bestimmte PowerShell-Befehle verwenden, um diesen Zweck zu erreichen.

Ausgabe in eine Textdatei in PowerShell exportieren

Wir betrachten zunächst einen Beispielbefehl, der normalerweise eine Standardausgabe liefert. Der Befehl, den wir hier verwenden werden, wäre Compare-Object.

Compare-Object ist einer der grundlegenden Befehle in PowerShell, der es den Benutzern ermöglicht, zwei Dateien zu vergleichen. Dann würde das Programm die in den beiden Dokumenten gefundenen Änderungen ausgeben.

Außerdem zeigt es auf die Datei, in der die eindeutige Zeile über Side Indicator gefunden wird. Dieser Befehl wird häufig verwendet, um Änderungen an einer Datei in verschiedenen Versionen von sich selbst nachzuverfolgen.

Die beiden zum Vergleich verwendeten Eingabedateien sind unten mit ihrem gesamten Inhalt dargestellt.

Ausgabe in eine Textdatei in PowerShell exportieren

Compare-Object $(Get-Content .\TestDoc1.txt) $(Get-Content .\TestDoc2.txt)

Die beiden Dateien, die in diesem Befehl verwendet werden, enthalten Dummy-Daten aus alphabetischen Zeichen, wobei mehrere Zeilen in jeder Datei eindeutig sind. Die Ausgabe des obigen Codes sieht so aus.

InputObject SideIndicator
----------- -------------
JJ          =>
KK          =>
LL          =>
MM          =>
NN          =>
DD          <=
EE          <=
FF          <=
GG          <=

Unser Thema ist zu diskutieren, wie man die obige Ausgabe in eine externe Textdatei bekommt.

Dafür gibt es mehrere Befehle. Einige gelten als die besten und einfachsten.

Verwenden den Befehl Out-File, um die Ausgabe eines allgemeinen Befehls in eine Textdatei in PowerShell zu exportieren

Out-File ist ein Befehl, der die Ausgabe eines PowerShell-Befehls an eine Datei sendet. Zum Beispiel können wir den oben gewählten Befehl wie folgt verwenden.

Compare-Object $(Get-Content .\TestDoc1.txt) $(Get-Content .\TestDoc2.txt) | Out-File .\TestDoc3.txt

Dann wird die Ausgabe nicht in das PowerShell Command Line Interface geschrieben, sondern direkt in die im Befehlspfad bereitgestellte Ausgabedatei gedruckt. Die folgende Ausgabe ist das, was in TestDoc3 gedruckt wird.

InputObject SideIndicator
----------- -------------
JJ          =>           
KK          =>           
LL          =>           
MM          =>           
NN          =>           
DD          <=           
EE          <=           
FF          <=           
GG          <=           

Außerdem zeigt das folgende Bild dieselbe Ausgabe wie die Ausgabedatei.

Ausgabe in eine Textdatei in PowerShell exportieren - 2

Andere Optionen können verwendet werden, wie zum Beispiel Start-Transcript und Stop-Transcript. Wir können diese verwenden, um ein Skript für jeden Befehl zu erstellen, der dazwischen ausgeführt wird.

Bevor Sie die Befehle starten, können Sie Start-Transcript eingeben, und am Ende der Befehle, die Sie skripten möchten, können Sie Stop-Transcript eingeben.

Dies ist jedoch nicht die beste Lösung, um die Ausgabe eines Befehls in eine separate Textdatei zu bekommen, da ein Skriptprozess alles aufzeichnet, was in der PowerShell passiert.

Daraus können wir schließen, dass out-file die beste Lösung ist, um die betreffende Aufgabe zu erfüllen. Die Ausgabe wird wie oben erwähnt und gezeigt erfolgreich empfangen.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.