Skip to main content

Ausgaben mit PowerShell filtern

Einleitung

Wenn du z.B. größere Log Dateien durchforsten möchtest, ist das filtern nach bestimmten Wörtern oder Regulären Ausdrücken sehr hilfreich. Dies kannst du mit der PowerShell realisieren.

Anwendung

Du musst im ersten Schritt die Datei einlesen, dann können diese Daten weiter verarbeitet werden.

Get-Content "C:\temp\log.txt"

Diesen übergeben wir mit der Pipeline Variable an die Zeilenweise Ausgabe der Datei.

Get-Content "C:\temp\log.txt" | Out-String -Stream

Im letzten Schritt filterst du mithilfe von Select-String die Ausgaben. Dafür verwenden wir ein paar Argumente die alle verwendet werden können.

Zuerst gibt es das Argument -Pattern. Mit diesem gibst du den Text an nachdem gesucht werden soll. Es können hierbei auch Reguläre Ausdrücke verwendet werden. 

Als zweites Argument gibt es noch -SimpleMatch. Damit teilst du der PowerShell mit das es sich nicht um einen Regulären Ausdruck handelt.

Als letztes gibt es noch -CaseSensitive. Hier wird dann auch auf Groß- und Kleinschreibung geachtet.

Wir suchen in unserem Beispiel nach allen Einträgen die das Wort "Hardware" enthalten.

Ein Wert nach dem gesucht werden soll

Get-Content "C:\temp\log.txt" | Out-String -Stream | Select-String -Pattern "Hardware" -SimpleMatch

Mehrere Werte nach dem gesucht werden soll

Get-Content "C:\temp\log.txt" | Out-String -Stream | Select-String -Pattern "Hardware","Software","Netzwerk" -SimpleMatch

Du erhältst nun gefilterte Ausgaben von PowerShell.