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, dass 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.