Verwenden von Umleitungsoperatoren in PowerShell
PowerShell ist eine erweiterte Befehlszeilenschnittstelle, mit der Sie verschiedene Befehle und Skripts in Windows ausführen können. PowerShell verfügt über die gleichen Umleitungsoperatoren wie die Eingabeaufforderung, verfügt jedoch auch über einige zusätzliche Operatoren, die flexibler und leistungsfähiger sind.
Im Folgenden finden Sie eine Liste der Umleitungsoperatoren, die Sie in PowerShell verwenden können:
- >: Dieser Operator wird verwendet, um die Befehlsausgabe in eine neue Datei umzuleiten. Wenn die Datei bereits vorhanden ist, wird ihr Inhalt durch die Befehlsausgabe überschrieben. Dieser Operator schaltet einfach den als “stream 1” oder “output stream” bezeichneten Ausgang um, bei dem es sich um den normalen Ausgang handelt, der auf dem Bildschirm angezeigt wird.
- >>: Dieser Operator wird verwendet, um die Befehlsausgabe in eine vorhandene Datei umzuleiten. Wenn die Datei noch nicht vorhanden ist, wird eine neue Datei erstellt. Die Ausgabe des Befehls wird an das Ende der Datei angehängt, ohne dass der vorherige Inhalt gelöscht wird. Dieser Operator schaltet einfach den Ausgangsstrom um.
- <: Dieser Operator wird verwendet, um Eingaben aus einer Datei zu übernehmen und an den Befehl zu übergeben. Dies ist nützlich, wenn Sie einen Befehl mit Parametern ausführen möchten, die in einer Textdatei gespeichert sind.
- |: Dieser Operator wird verwendet, um die Ausgabe eines Befehls mit der Eingabe eines anderen Befehls zu korrelieren. Dies wird als Pipelining bezeichnet und ermöglicht es Ihnen, eine Reihe von voneinander abhängigen Befehlen zu erstellen.
- 2>: Dieser Operator wird verwendet, um eine Ausgabe umzuleiten, die als “stream 2” oder “error stream” bezeichnet wird und eine Ausgabe enthält, die eine auf dem Bildschirm angezeigte Fehlermeldung enthält.
- 2>>: Dieser Operator wird verwendet, um Stream-Fehler auf vorhandene Dateien umzuleiten. Wenn die Datei noch nicht vorhanden ist, wird eine neue Datei erstellt. Die Ausgabe des Fehlerdatenstroms wird an das Ende der Datei angehängt, ohne dass der vorherige Inhalt entfernt wird.
- 3>: Dieser Operator wird verwendet, um eine Ausgabe umzuleiten, die als “stream 3” oder “warning stream” bezeichnet wird und eine Ausgabe ist, die eine auf dem Bildschirm angezeigte Warnmeldung enthält.
- 3>>: Dieser Operator wird verwendet, um den Warnungsdatenstrom in eine vorhandene Datei umzuleiten. Wenn die Datei noch nicht vorhanden ist, wird eine neue Datei erstellt. Die Ausgabe des Warnungsdatenstroms wird an das Ende der Datei angefügt, ohne dass der vorherige Inhalt entfernt wird.
- 4>: Dieser Operator wird verwendet, um die als “stream 4” oder “verbose stream” bezeichnete Ausgabe umzuleiten, die zusätzliche Informationen enthält, die auf dem Bildschirm angezeigt werden, wenn Sie den Parameter -Verbose in Befehlen verwenden.
- 4>>: Dieser Operator wird verwendet, um den ausführlichen Datenstrom in eine vorhandene Datei umzuleiten. Wenn die Datei noch nicht vorhanden ist, wird eine neue Datei erstellt. Die Ausgabe des ausführlichen Streams wird an das Ende der Datei angehängt, ohne dass der vorherige Inhalt gelöscht wird.
- 5>: Dieser Operator wird verwendet, um die Ausgabe umzuleiten, die als “stream 5” oder “debug stream” bezeichnet wird, d. h. eine Ausgabe, die Debuginformationen enthält, die auf dem Bildschirm angezeigt werden, wenn Sie den Parameter -Debug im Befehl verwenden.
- 5>>: Dieser Operator wird verwendet, um den Debug-Stream in eine vorhandene Datei umzuleiten. Wenn die Datei noch nicht vorhanden ist, fügt dieser Befehl die Debugausgabe des Streams am Ende der Datei hinzu, ohne den vorherigen Inhalt zu entfernen.
Sie können diese Umleitungsoperatoren gleichzeitig verwenden, um die Ausgabe von verschiedenen Streams in verschiedene Dateien umzuschalten. Wenn Sie z. B. den Befehl “Get-Process” ausführen möchten, um eine Liste der auf Ihrem System ausgeführten Prozesse anzuzeigen, und die normale Ausgabe in die Datei “process.txt”, die Fehlerausgabe in die Datei “error.txt” und die ausführliche Ausgabe in die Datei “verbose.txt” umleiten möchten, können Sie den folgenden Befehl eingeben:
Get-Process -Verbose > process.txt 2> error.txt 4> verbose.txt
Mit diesem Befehl werden drei neue Dateien im aktuellen Verzeichnis erstellt und die Ausgabe jedes Datenstroms in die entsprechende Datei geschrieben. Wenn die Dateien bereits vorhanden sind, wird ihr Inhalt durch die Befehlsausgabe überschrieben.
Sie können auch spezielle Umleitungsoperatoren verwenden, die als “tee-object” bezeichnet werden, um die Befehlsausgabe in eine Datei umzuleiten, während sie auf dem Bildschirm angezeigt wird. Dies ist nützlich, wenn Sie die Befehlsausgabe zum späteren Nachschlagen speichern, aber auch live sehen möchten.
Um tee-object zu verwenden, müssen Sie nach dem Befehl, den Sie ausführen möchten, das Symbol “|” hinzufügen, gefolgt von dem Wort “tee” und dem Namen der Zieldatei. Wenn Sie z. B. den Befehl “Get-Date” ausführen möchten, um das aktuelle Datum und die aktuelle Uhrzeit anzuzeigen, und die Ausgabe in die Datei “date.txt” umleiten möchten, während sie auf dem Bildschirm angezeigt wird, können Sie den folgenden Befehl eingeben:
Get-Date | Tee date.txt
Mit diesem Befehl wird eine neue Datei mit dem Namen date.txt im aktuellen Verzeichnis erstellt und die Ausgabe des Befehls Get-Date in dieses Verzeichnis geschrieben. Die Ausgabe wird auch auf dem Bildschirm angezeigt.