Select-String
Sucht nach Text in Dateien und Zeichenfolgen.
Syntax
Select-String
[-Pattern] <string[]>
[-Path] <string[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-Include <string[]>]
[-Exclude <string[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <string>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Pattern] <string[]>
-InputObject <psobject>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-Include <string[]>]
[-Exclude <string[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <string>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Pattern] <string[]>
-LiteralPath <string[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-Include <string[]>]
[-Exclude <string[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <string>]
[-Context <Int32[]>]
[<CommonParameters>]
Beschreibung
Das Select-String
Cmdlet sucht nach Text- und Textmustern in Eingabezeichenfolgen und -dateien. Sie können ähnlich wie grep in UNIX oder findstr.exe in Windows verwendenSelect-String
.
Select-String
basiert auf Textzeilen. Sucht standardmäßig Select-String
die erste Übereinstimmung in jeder Zeile und zeigt für jede Übereinstimmung den Dateinamen, die Zeilennummer und den gesamten Text in der Zeile an, die die Übereinstimmung enthält. Sie können Select-String
mehrere Übereinstimmungen pro Zeile finden, Text vor und nach der Übereinstimmung anzeigen oder einen booleschen Wert (True oder False) anzeigen, der angibt, ob eine Übereinstimmung gefunden wird.
Select-String
verwendet einen regulären Ausdrucksabgleich, kann aber auch eine Übereinstimmung durchführen, die die Eingabe nach dem von Ihnen angegebenen Text durchsucht.
Select-String
kann alle Text-Übereinstimmungen anzeigen oder nach der ersten Übereinstimmung in jeder Eingabedatei beenden.
Select-String
kann verwendet werden, um den gesamten Text anzuzeigen, der nicht dem angegebenen Muster entspricht.
Sie können auch angeben, dass Select-String
eine bestimmte Zeichencodierung erwartet werden soll, z. B. bei der Suche nach Dateien mit Unicode-Text. Select-String
verwendet die byte-order-mark (BOM), um das Codierungsformat der Datei zu erkennen. Wenn die Datei keine BoM hat, wird davon ausgegangen, dass die Codierung UTF8 ist.
Beispiele
Beispiel 1: Suchen einer Übereinstimmung zwischen Groß- und Kleinschreibung
In diesem Beispiel wird eine Übereinstimmung zwischen Groß- und Kleinschreibung des Texts ausgeführt, der über die Pipeline an das Select-String
Cmdlet gesendet wurde.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Die Textzeichenfolgen Hello und HELLO werden in der Pipeline an das Select-String
Cmdlet gesendet.
Select-String
verwendet den Pattern-Parameter , um HELLO anzugeben. Der Parameter CaseSensitive gibt an, dass die Groß-/Kleinschreibung nur mit dem Großbuchstabenmuster übereinstimmen muss. SimpleMatch ist ein optionaler Parameter und gibt an, dass die Zeichenfolge im Muster nicht als regulärer Ausdruck interpretiert wird.
Select-String
zeigt HELLO in der PowerShell-Konsole an.
Beispiel 2: Suchen nach Übereinstimmungen in Textdateien
Dieser Befehl durchsucht alle Dateien mit der .txt
Dateinamenerweiterung im aktuellen Verzeichnis. Die Ausgabe zeigt die Zeilen in den Dateien an, die die angegebene Zeichenfolge enthalten.
Get-Alias | Out-File -FilePath .\Alias.txt
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\*.txt -Pattern 'Get'
Alias.txt:8:Alias cat -> Get-Content
Alias.txt:28:Alias dir -> Get-ChildItem
Alias.txt:43:Alias gal -> Get-Alias
Command.txt:966:Cmdlet Get-Acl
Command.txt:967:Cmdlet Get-Alias
In diesem Beispiel werden und Get-Command
mit dem Out-File
Cmdlet verwendet, Get-Alias
um zwei Textdateien im aktuellen Verzeichnis zu erstellen, Alias.txt und Command.txt.
Select-String
verwendet den Path-Parameter mit dem Platzhalter Sternchen (*
), um alle Dateien im aktuellen Verzeichnis mit der Dateinamenerweiterung .txt
zu durchsuchen. Der Pattern-Parameter gibt den Text an, der get- übereinstimmen soll. Select-String
zeigt die Ausgabe in der PowerShell-Konsole an. Der Dateiname und die Zeilennummer gehen jeder Inhaltszeile voran, die eine Übereinstimmung mit dem Pattern-Parameter enthält.
Beispiel 3: Suchen einer Muster-Übereinstimmung
In diesem Beispiel werden mehrere Dateien durchsucht, um Übereinstimmungen für das angegebene Muster zu finden. Das Muster verwendet einen Quantifizierer für reguläre Ausdrücke. Weitere Informationen finden Sie unter about_Regular_Expressions.
Select-String -Path "$PSHOME\en-US\*.txt" -Pattern '\?'
C:\Program Files\PowerShell\6\en-US\default.help.txt:27: beginning at https://go.microsoft.com/fwlink/?LinkID=108518.
C:\Program Files\PowerShell\6\en-US\default.help.txt:50: or go to: https://go.microsoft.com/fwlink/?LinkID=210614
Das Select-String
Cmdlet verwendet zwei Parameter: Path und Pattern. Der Path-Parameter verwendet die Variable $PSHOME
, die das PowerShell-Verzeichnis angibt. Der rest des Pfads enthält das Unterverzeichnis en-US und gibt jede *.txt
Datei im Verzeichnis an. Der Pattern-Parameter gibt an, dass in jeder Datei ein Fragezeichen (?
) übereinstimmt. Ein umgekehrter Schrägstrich (\
) wird als Escapezeichen verwendet und ist erforderlich, da das Fragezeichen (?
) ein Quantifizierer für reguläre Ausdrücke ist. Select-String
zeigt die Ausgabe in der PowerShell-Konsole an. Der Dateiname und die Zeilennummer gehen jeder Inhaltszeile voran, die eine Übereinstimmung mit dem Pattern-Parameter enthält.
Beispiel 4: Verwenden Select-String in einer Funktion
In diesem Beispiel wird eine Funktion zum Suchen nach einem Muster in den PowerShell-Hilfedateien erstellt. In diesem Beispiel ist die Funktion nur in der PowerShell-Sitzung vorhanden. Wenn die PowerShell-Sitzung geschlossen wird, wird die Funktion gelöscht. Weitere Informationen finden Sie unter about_Functions.
PS> Function Search-Help
>> {
>> $PSHelp = "$PSHOME\en-US\*.txt"
>> Select-String -Path $PSHelp -Pattern 'About_'
>> }
PS>
PS> Search-Help
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:2: about_ActivityCommonParameters
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:31: see about_WorkflowCommonParameters.
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:33: about_CommonParameters.
Die Funktion wird in der PowerShell-Befehlszeile erstellt. Der Function
Befehl verwendet den Namen Search-Help. Drücken Sie die EINGABETASTE , um mit dem Hinzufügen von Anweisungen zur Funktion zu beginnen. Fügen Sie an der >>
Eingabeaufforderung jede Anweisung hinzu, und drücken Sie die EINGABETASTE , wie im Beispiel gezeigt. Nachdem die schließende Klammer hinzugefügt wurde, kehren Sie zu einer PowerShell-Eingabeaufforderung zurück.
Die Funktion enthält zwei Befehle. Die $PSHelp
Variable speichert den Pfad zu den PowerShell-Hilfedateien. $PSHOME
ist das PowerShell-Installationsverzeichnis mit dem Unterverzeichnis en-US , das die einzelnen *.txt
Dateien im Verzeichnis angibt.
Der Select-String
Befehl in der Funktion verwendet die Parameter Path und Pattern . Der Path-Parameter verwendet die $PSHelp
Variable, um den Pfad abzurufen. Der Pattern-Parameter verwendet die Zeichenfolge About_ als Suchkriterien.
Geben Sie zum Ausführen der Funktion ein Search-Help
. Der Befehl der Select-String
Funktion zeigt die Ausgabe in der PowerShell-Konsole an.
Beispiel 5: Search für eine Zeichenfolge in einem Windows-Ereignisprotokoll
In diesem Beispiel wird nach einer Zeichenfolge in einem Windows-Ereignisprotokoll gesucht. Die Variable $_
stellt das aktuelle Objekt in der Pipeline dar. Weitere Informationen finden Sie unter about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'
Das Get-WinEvent
Cmdlet verwendet den LogName-Parameter , um das Anwendungsprotokoll anzugeben. Der MaxEvents-Parameter ruft die 50 neuesten Ereignisse aus dem Protokoll ab. Der Protokollinhalt wird in der Variablen mit dem Namen $Events
gespeichert.
Die $Events
Variable wird an das Select-String
Cmdlet gesendet. Select-String
verwendet den InputObject-Parameter . Die $_
Variable stellt das aktuelle Objekt dar und message
ist eine Eigenschaft des Ereignisses. Der Pattern-Parameter gibt die Zeichenfolge Failed aus und sucht nach Übereinstimmungen in $_.message
. Select-String
zeigt die Ausgabe in der PowerShell-Konsole an.
Beispiel 6: Suchen einer Zeichenfolge in Unterverzeichnissen
In diesem Beispiel wird ein Verzeichnis und alle zugehörigen Unterverzeichnisse nach einer bestimmten Textzeichenfolge durchsucht.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse | Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
verwendet den Path-Parameter , um C:\Windows\System32*.txtanzugeben. Der Recurse-Parameter enthält die Unterverzeichnisse. Die -Objekte werden an die Pipeline Select-String
gesendet.
Select-String
verwendet den Pattern-Parameter und gibt die Zeichenfolge Microsoft an. Der CaseSensitive-Parameter wird verwendet, um die genaue Groß-/Kleinschreibung der Zeichenfolge abzugleichen. Select-String
zeigt die Ausgabe in der PowerShell-Konsole an.
Hinweis
Abhängig von Ihren Berechtigungen wird in der Ausgabe möglicherweise Zugriff verweigerte Nachrichten angezeigt.
Beispiel 7: Suchen nach Zeichenfolgen, die nicht mit einem Muster übereinstimmen
In diesem Beispiel wird gezeigt, wie Datenzeilen ausgeschlossen werden, die nicht mit einem Muster übereinstimmen.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
Das Get-Command
Cmdlet sendet Objekte an die Pipeline, um Out-File
die Command.txt Datei im aktuellen Verzeichnis zu erstellen. Select-String
verwendet den Path-Parameter , um die Command.txt-Datei anzugeben. Der Pattern-Parameter gibt Get und Set als Suchmuster an. Der NotMatch-Parameter schließt Get und Set aus den Ergebnissen aus.
Select-String
zeigt die Ausgabe in der PowerShell-Konsole an, die Get oderSet nicht enthält.
Beispiel 8: Suchen nach Zeilen vor und nach einer Übereinstimmung
In diesem Beispiel wird gezeigt, wie Die Zeilen vor und nach dem übereinstimmenden Muster abgerufen werden.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get-Computer' -Context 2, 3
Command.txt:1186:Cmdlet Get-CmsMessage 3.0.0.0 Microsoft.PowerShell.Security
Command.txt:1187:Cmdlet Get-Command 3.0.0.0 Microsoft.PowerShell.Core
> Command.txt:1188:Cmdlet Get-ComputerInfo 3.1.0.0 Microsoft.PowerShell.Management
> Command.txt:1189:Cmdlet Get-ComputerRestorePoint 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:1190:Cmdlet Get-Content 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:1191:Cmdlet Get-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:1192:Cmdlet Get-Counter 3.0.0.0 Microsoft.PowerShell.Diagnostics
Das Get-Command
Cmdlet sendet Objekte an die Pipeline, um Out-File
die Command.txt Datei im aktuellen Verzeichnis zu erstellen. Select-String
verwendet den Path-Parameter , um die Command.txt-Datei anzugeben. Der Pattern-Parameter gibt Get-Computer als Suchmuster an. Der Context-Parameter verwendet zwei Werte vor und nach und markiert Mustervergleiche in der Ausgabe mit einer spitzen Klammer (>
). Der Context-Parameter gibt die beiden Zeilen vor der ersten Mustervergleichung und drei Zeilen nach der letzten Mustervergleichung aus.
Beispiel 9: Suchen aller Mustervergleiche
In diesem Beispiel wird gezeigt, wie der AllMatches-Parameter jede Musterübereinstimmung in einer Textzeile findet. Sucht standardmäßig Select-String
nur das erste Vorkommen eines Musters in einer Textzeile. In diesem Beispiel werden Objekteigenschaften verwendet, die mit dem Get-Member
Cmdlet gefunden werden.
PS> $A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
PS> $A
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:5: Describes the parameters that Windows PowerShell
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:9: Windows PowerShell Workflow adds the activity common
PS> $A.Matches
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 4
Length : 10
Value : PowerShell
PS> $A.Matches.Length
2073
PS> $B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
PS> $B.Matches.Length
2200
Das Get-ChildItem
Cmdlet verwendet den Path-Parameter . Der Path-Parameter verwendet die Variable $PSHOME
, die das PowerShell-Verzeichnis angibt. Der rest des Pfads enthält das Unterverzeichnis en-US und gibt jede *.txt
Datei im Verzeichnis an. Die Get-ChildItem
Objekte werden in der $A
Variablen gespeichert. Die $A
Variable wird an das Select-String
Cmdlet gesendet. Select-String
verwendet den Pattern-Parameter , um jede Datei nach der Zeichenfolge PowerShell zu durchsuchen.
In der PowerShell-Befehlszeile werden die $A
Variableninhalte angezeigt. Es gibt eine Zeile, die zwei Vorkommen der Zeichenfolge PowerShell enthält.
Die $A.Matches
-Eigenschaft listet das erste Vorkommen des Musters PowerShell in jeder Zeile auf.
Die $A.Matches.Length
-Eigenschaft zählt das erste Vorkommen des Musters PowerShell in jeder Zeile.
Die $B
Variable verwendet dieselben Get-ChildItem
Cmdlets und Select-String
, fügt jedoch den Parameter AllMatches hinzu. AllMatches findet jedes Vorkommen des Musters PowerShell in jeder Zeile. Die in den $A
Variablen und $B
gespeicherten Objekte sind identisch.
Die $B.Matches.Length
Eigenschaft wird erhöht, da für jede Zeile jedes Vorkommen des Musters PowerShell gezählt wird.
Parameter
-AllMatches
Gibt an, dass das Cmdlet nach mehr als einer Übereinstimmung in jeder Textzeile sucht. Ohne diesen Parameter Select-String
findet nur die erste Übereinstimmung in jeder Textzeile.
Wenn Select-String
mehr als eine Übereinstimmung in einer Textzeile gefunden wird, wird immer noch nur ein MatchInfo-Objekt für die Zeile ausgegeben, aber die Matches-Eigenschaft des -Objekts enthält alle Übereinstimmungen.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CaseSensitive
Gibt an, dass beim Cmdlet die Groß-/Kleinschreibung beachtet wird. Standardmäßig wird bei Übereinstimmungen die Groß-/Kleinschreibung nicht beachtet.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Context
Erfasst die angegebene Anzahl von Zeilen vor und nach der Zeile, die dem Muster entspricht.
Wenn Sie eine Zahl als Wert dieses Parameters eingeben, bestimmt diese Zahl die Anzahl der vor und nach der Übereinstimmung erfassten Zeilen. Wenn Sie zwei Zahlen als Wert eingeben, bestimmt die erste Zahl die Anzahl der Zeilen vor der Übereinstimmung und die zweite Zahl die Anzahl der Zeilen nach der Übereinstimmung. Beispiel: -Context 2,3
.
In der Standardanzeige werden Zeilen mit einer Übereinstimmung durch eine rechtwinklibe Klammer () (>
ASCII 62) in der ersten Spalte der Anzeige angezeigt. Nicht gekennzeichnete Zeilen stehen für Kontext.
Der Context-Parameter ändert nicht die Anzahl der von generierten Select-String
Objekte.
Select-String
generiert ein MatchInfo-Objekt für jede Übereinstimmung. Der Kontext wird als Array von Zeichenfolgen in der Context-Eigenschaft des -Objekts gespeichert.
Wenn die Ausgabe eines Select-String
Befehls über die Pipeline an einen anderen Select-String
Befehl gesendet wird, durchsucht der empfangende Befehl nur den Text in der übereinstimmenden Zeile. Die übereinstimmene Zeile ist der Wert der Line-Eigenschaft des MatchInfo-Objekts , nicht der Text in den Kontextzeilen. Daher ist der Context-Parameter für den empfangenden Select-String
Befehl ungültig.
Wenn der Kontext eine Übereinstimmung enthält, enthält das MatchInfo-Objekt für jede Übereinstimmung alle Kontextzeilen, aber die sich überlappenden Zeilen werden nur einmal in der Anzeige angezeigt.
Type: | Int32[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Gibt den Typ der Codierung für die Zieldatei an. Der Standardwert lautet Default.
Die zulässigen Werte für diesen Parameter sind wie folgt:
- ASCII Verwendet ASCII (7-Bit)-Zeichensatz.
- BigEndianUnicode Verwendet UTF-16 mit der Big-Endian-Bytereihenfolge.
- Standard Verwendet die Codierung, die der aktiven Codepage des Systems (normalerweise ANSI) entspricht.
- OEM Verwendet die Codierung, die der aktuellen OEM-Codepage des Systems entspricht.
- Unicode Verwendet UTF-16 mit der Little-Endian-Bytereihenfolge.
- UTF7 Verwendet UTF-7.
- UTF8 Verwendet UTF-8.
- UTF32 Verwendet UTF-32 mit der Little-Endian-Bytereihenfolge.
Type: | String |
Accepted values: | ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32 |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Schließen Sie die angegebenen Elemente aus. Der Wert dieses Parameters qualifiziert den Path-Parameter. Geben Sie ein Pfadelement oder -muster ein, z. B *.txt
. . Platzhalter sind zulässig.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
Schließt die angegebenen Elemente ein. Der Wert dieses Parameters qualifiziert den Path-Parameter. Geben Sie ein Pfadelement oder -muster ein, z. B *.txt
. . Platzhalter sind zulässig.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Gibt den zu durchsuchenden Text an. Geben Sie eine Variable ein, die den Text enthält, oder geben Sie einen Befehl oder Ausdruck ein, der den Text abruft.
Die Verwendung des InputObject-Parameters ist nicht mit dem Senden von Zeichenfolgen an die Pipeline identisch Select-String
.
Wenn Sie mehrere Zeichenfolgen an das Select-String
Cmdlet übergeben, sucht es nach dem angegebenen Text in jeder Zeichenfolge und gibt jede Zeichenfolge zurück, die den Suchtext enthält.
Wenn Sie den InputObject-Parameter verwenden, um eine Auflistung von Zeichenfolgen zu übermitteln, Select-String
behandelt die Auflistung als eine einzelne kombinierte Zeichenfolge. Select-String
gibt die Zeichenfolgen als Einheit zurück, wenn der Suchtext in einer beliebigen Zeichenfolge gefunden wird.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-List
Aus jeder Eingabedatei wird nur der erste instance des übereinstimmenden Texts zurückgegeben. Dies ist die effizienteste Methode zum Abrufen von Listendateien mit Inhalten, die dem regulären Ausdruck entsprechen.
Gibt standardmäßig Select-String
ein MatchInfo-Objekt für jede gefundene Übereinstimmung zurück.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Gibt den Pfad zu den Dateien an, die durchsucht werden sollen. Der Wert des LiteralPath-Parameters wird genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einzelne Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren. Weitere Informationen finden Sie unter about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NotMatch
Der NotMatch-Parameter findet Text, der nicht dem angegebenen Muster entspricht.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Gibt den Pfad zu den zu durchsuchenden Dateien an. Platzhalter sind zulässig. Der Standardspeicherort ist das lokale Verzeichnis.
Geben Sie Dateien im Verzeichnis an, z log1.txt
. B. , *.doc
oder *.*
. Wenn Sie nur das Verzeichnis angeben, führt der Befehl zu einem Fehler.
Type: | String[] |
Position: | 1 |
Default value: | Local directory |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Pattern
Gibt den Text an, nach dem in jeder Zeile gesucht werden soll. Geben Sie eine Zeichenfolge oder einen regulären Ausdruck ein. Wenn Sie eine Zeichenfolge eingeben, verwenden Sie den SimpleMatch-Parameter .
Informationen zu regulären Ausdrücken finden Sie unter about_Regular_Expressions.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Quiet
Gibt an, dass das Cmdlet anstelle eines MatchInfo-Objekts einen booleschen Wert (True oder False) zurückgibt. Der Wert ist True, wenn das Muster gefunden wird. andernfalls ist der Wert False.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SimpleMatch
Gibt an, dass das Cmdlet eine einfache Übereinstimmung anstelle eines regulären Ausdrucks verwendet. Bei einer einfachen Übereinstimmung Select-String
durchsucht die Eingabe nach dem Text im Pattern-Parameter . Der Wert des Pattern-Parameters wird nicht als Anweisung für reguläre Ausdrücke interpretiert.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können jedes Objekt, das über eine ToString-Methode verfügt, an übergeben Select-String
.
Ausgaben
Microsoft.PowerShell.Commands.MatchInfo or System.Boolean
Standardmäßig ist die Ausgabe eine Gruppe von MatchInfo-Objekten mit einem für jede gefundene Übereinstimmung. Wenn Sie den Quiet-Parameter verwenden, ist die Ausgabe ein boolescher Wert, der angibt, ob das Muster gefunden wurde.
Hinweise
Select-String
ähnelt grep unter UNIX oder findstr.exe unter Windows.
Der sls-Alias für das Select-String
Cmdlet wurde in PowerShell 3.0 eingeführt.
Hinweis
Gemäß genehmigten Verben für PowerShell-Befehle ist sc
das offizielle Aliaspräfix für Select-*
Cmdlets , nicht sl
. Daher sollte der richtige Alias für Select-String
nicht seinscs
sls
. Dies ist eine Ausnahme von dieser Regel.
Um zu verwenden Select-String
, geben Sie den Text ein, den Sie als Wert des Pattern-Parameters suchen möchten. Verwenden Sie die folgenden Kriterien, um den zu durchsuchenden Text anzugeben:
- Geben Sie den Text in eine Anführungszeichenzeichenfolge ein, und leiten Sie ihn
Select-String
an . - Speichern Sie eine Textzeichenfolge in einer Variablen, und geben Sie dann die Variable als Wert des InputObject-Parameters an .
- Wenn der Text in Dateien gespeichert ist, verwenden Sie den Path-Parameter , um den Pfad zu den Dateien anzugeben.
Interpretiert standardmäßig Select-String
den Wert des Pattern-Parameters als regulären Ausdruck. (Weitere Informationen finden Sie unter about_Regular_Expressions.
Sie können den SimpleMatch-Parameter verwenden, um den Regulären Ausdrucksabgleich außer Kraft zu setzen. Der SimpleMatch-Parameter findet Instanzen des Werts des Pattern-Parameters in der Eingabe.
Die Standardausgabe von Select-String
ist ein MatchInfo-Objekt , das detaillierte Informationen zu den Übereinstimmungen enthält. Die Informationen im -Objekt sind nützlich, wenn Sie nach Text in Dateien suchen, da MatchInfo-Objekte Eigenschaften wie Filename und Line aufweisen. Wenn die Eingabe nicht aus der Datei stammt, ist der Wert dieser Parameter InputStream.
Wenn Sie die Informationen im MatchInfo-Objekt nicht benötigen, verwenden Sie den Parameter Quiet . Der Quiet-Parameter gibt einen booleschen Wert (True oder False) zurück, um anzugeben, ob anstelle eines MatchInfo-Objekts eine Übereinstimmung gefunden wurde.
Verwendet beim Abgleich von Ausdrücken Select-String
die aktuelle Kultur, die für das System festgelegt ist. Verwenden Sie das Cmdlet Get-Culture, um die aktuelle Kultur zu finden.
Geben Sie den folgenden Befehl ein, um die Eigenschaften eines MatchInfo-Objekts zu finden:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *