Verwenden des Cmdlet \"Select-String\"

Überprüfen des Vorhandenseins einer Zeichenfolge

Was können Sie mit dem Cmdlet Select-String machen? Nun, zum einen können Sie damit ermitteln, ob eine bestimmte Zeichenfolge in einer Textdatei vorhanden ist oder nicht. Nehmen wir beispielsweise an, die Datei "C:\Scripts\Test.txt" ist eine Protokolldatei, die folgende Informationen enthält:

Operation succeeded, 5/1/2006
Operation succeeded, 5/2/2006
Operation failed, 5/3/2006
Operation succeeded, 5/4/2006
Operation succeeded, 5/5/2006

Sie möchten nun den Inhalt der Datei schnell nach dem Wort Failed durchsuchen. Wenn das Wort in der Datei vorkommt, ist eine der Operationen fehlgeschlagen. Kommt das Wort nicht vor, wurden alle Operationen erfolgreich durchgeführt. (Und da wir gerade über fehlgeschlagene Operationen sprechen: Hoffentlich sind Sie kein Chirurg.) So können Sie diese Suche durchführen:

Get-Content c:\scripts\test.txt | Select-String "Failed" -quiet

Wir verwenden das Cmdlet Get-Content, um den Inhalt der Datei "C:\Scripts\Test.txt" abzurufen. Wir übergeben anschließend diesen Inhalt an das Cmdlet Select-String, das dann nach der Zielzeichenfolge suchen soll. Durch Hinzufügen des Parameters –quiet erhalten wir den Wert "True" zurück, wenn die Zeichenfolge gefunden wird. Wird die Zeichenfolge nicht gefunden, erhalten wir nichts zurück. Wenn wir den Parameter –quiet auslassen, gibt Windows PowerShell jede Zeile der Textdatei zurück, die die Zielzeichenfolge enthält:

Operation failed, 5/3/2006

Ein weiterer nützlicher Select-String-Parameter ist –casesensitive, der eine Suche in der Textdatei unter Beachtung der Groß-/Kleinschreibung durchführt. Dieser spezielle Befehl gibt nichts zurück, was bedeutet, dass die Zielzeichenfolge Failed nicht gefunden wurde:

Get-Content c:\scripts\test.txt | Select-String "Failed" -quiet -casesensitive

Warum konnte Failed in der Textdatei nicht gefunden werden? Ganz einfach: Eine Zeichenfolge mit genau dieser Schreibung wurde nicht gefunden. Die Datei enthält die Zeichenfolge failed mit kleinem f. Die Zielzeichenfolge enthält allerdings Failed mit großem F. Wenn Sie die Zielzeichenfolge in failed ändern (oder den Parameter –casesensitive entfernen), gibt der Befehl "True" zurück.