Select-String
Hiermee vindt u tekst in tekenreeksen en bestanden.
Syntaxis
Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Description
De Select-String
cmdlet maakt gebruik van reguliere expressies om te zoeken naar tekstpatronen in invoertekenreeksen en bestanden. U kunt Select-String
vergelijkbaar zijn met grep
in UNIX of findstr.exe
in Windows.
Select-String
is gebaseerd op regels tekst. Zoekt standaard Select-String
de eerste overeenkomst op elke regel en geeft voor elke overeenkomst de bestandsnaam, het regelnummer en alle tekst op de regel die de overeenkomst bevat weer. U kunt direct Select-String
meerdere overeenkomsten per regel zoeken, tekst weergeven vóór en na de overeenkomst of een Booleaanse waarde (Waar of Onwaar) weergeven die aangeeft of er een overeenkomst is gevonden.
Select-String
kan alle tekstovereenkomsten weergeven of stoppen na de eerste overeenkomst in elk invoerbestand.
Select-String
kan worden gebruikt om alle tekst weer te geven die niet overeenkomt met het opgegeven patroon.
U kunt ook opgeven dat Select-String
een bepaalde tekencodering moet worden verwacht, bijvoorbeeld wanneer u bestanden met Unicode-tekst doorzoekt. Select-String
gebruikt de byte-order-mark (BOM) om de coderingsindeling van het bestand te detecteren. Als het bestand geen bom heeft, wordt ervan uitgegaan dat de codering UTF8 is.
Voorbeelden
Voorbeeld 1: Een hoofdlettergevoelige overeenkomst zoeken
In dit voorbeeld wordt een hoofdlettergevoelige overeenkomst uitgevoerd met de tekst die door de pijplijn naar de Select-String
cmdlet is verzonden.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
De tekenreeksen Hello en HELLO worden via de pijplijn naar de Select-String
cmdlet verzonden.
Select-String
gebruikt de parameter Pattern om HELLO op te geven. De parameter CaseSensitive geeft aan dat de case alleen moet overeenkomen met het hoofdletterpatroon. SimpleMatch is een optionele parameter en geeft aan dat de tekenreeks in het patroon niet wordt geïnterpreteerd als een reguliere expressie.
Select-String
geeft HELLO weer in de PowerShell-console.
Voorbeeld 2: Overeenkomsten zoeken in tekstbestanden
Met deze opdracht worden alle bestanden met de .txt
bestandsnaamextensie in de huidige map doorzocht. In de uitvoer worden de regels weergegeven in de bestanden die de opgegeven tekenreeks bevatten.
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 dit voorbeeld Get-Alias
worden met Get-Command
de Out-File
cmdlet twee tekstbestanden gemaakt in de huidige map, Alias.txt en Command.txt.
Select-String
gebruikt de parameter Path met het sterretje (*
) om alle bestanden in de huidige map te doorzoeken met de bestandsnaamextensie .txt
. De patroonparameter geeft de tekst op die overeenkomt met Get-. Select-String
geeft de uitvoer weer in de PowerShell-console. De bestandsnaam en het regelnummer staan voor elke regel met inhoud die een overeenkomst bevat voor de patroonparameter .
Voorbeeld 3: Een patroonovereenkomst zoeken
In dit voorbeeld worden meerdere bestanden doorzocht om overeenkomsten voor het opgegeven patroon te vinden. Het patroon maakt gebruik van een reguliere expressie-kwantificator. Zie about_Regular_Expressions voor meer informatie.
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
De Select-String
cmdlet maakt gebruik van twee parameters, Path en Pattern. De parameter Path gebruikt de variabele $PSHOME
waarmee de PowerShell-map wordt opgegeven. De rest van het pad bevat de submap en-US en geeft elk *.txt
bestand in de map op. De parameter Pattern geeft aan dat het overeenkomt met een vraagteken (?
) in elk bestand. Een backslash (\
) wordt gebruikt als een escape-teken en is nodig omdat het vraagteken (?
) een reguliere expressie-kwantificator is. Select-String
geeft de uitvoer weer in de PowerShell-console. De bestandsnaam en het regelnummer staan voor elke regel met inhoud die een overeenkomst bevat voor de patroonparameter .
Voorbeeld 4: Select-String gebruiken in een functie
In dit voorbeeld wordt een functie gemaakt om te zoeken naar een patroon in de Help-bestanden van PowerShell. In dit voorbeeld bestaat de functie alleen in de PowerShell-sessie. Wanneer de PowerShell-sessie is gesloten, wordt de functie verwijderd. Zie about_Functions voor meer informatie.
function Search-Help
{
$PSHelp = "$PSHOME\en-US\*.txt"
Select-String -Path $PSHelp -Pattern 'About_'
}
Search-Help
C:\Program Files\PowerShell\7\en-US\default.help.txt:67: The titles of conceptual topics begin with "About_".
C:\Program Files\PowerShell\7\en-US\default.help.txt:70: Get-Help About_<topic-name>
C:\Program Files\PowerShell\7\en-US\default.help.txt:93: Get-Help About_Modules : Displays help about PowerShell modules.
C:\Program Files\PowerShell\7\en-US\default.help.txt:97: about_Updatable_Help
De functie wordt gemaakt op de PowerShell-opdrachtregel. De Function
opdracht gebruikt de naam Search-Help
. Druk op Enter om instructies toe te voegen aan de functie. Voeg vanuit de >>
prompt elke instructie toe en druk op Enter , zoals wordt weergegeven in het voorbeeld. Nadat de haak sluiten is toegevoegd, keert u terug naar een PowerShell-prompt.
De functie bevat twee opdrachten. De $PSHelp
variabele slaat het pad op naar de Help-bestanden van PowerShell. $PSHOME
is de PowerShell-installatiemap met de submap en-US die elk *.txt
bestand in de map opgeeft.
De Select-String
opdracht in de functie maakt gebruik van de parameters Path en Pattern . De parameter Path gebruikt de $PSHelp
variabele om het pad op te halen. De parameter Pattern gebruikt de tekenreeks About_ als zoekcriteria.
Als u de functie wilt uitvoeren, typt Search-Help
u . Met de opdracht van Select-String
de functie wordt de uitvoer weergegeven in de PowerShell-console.
Voorbeeld 5: Zoeken naar een tekenreeks in een Windows-gebeurtenislogboek
In dit voorbeeld wordt gezocht naar een tekenreeks in een Windows-gebeurtenislogboek. De variabele $_
vertegenwoordigt het huidige object in de pijplijn. Zie about_Automatic_Variables voor meer informatie.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'
De Get-WinEvent
cmdlet gebruikt de parameter LogName om het toepassingslogboek op te geven. Met de parameter MaxEvents worden de 50 meest recente gebeurtenissen uit het logboek opgehaald. De logboekinhoud wordt opgeslagen in de variabele met de naam $Events
.
De $Events
variabele wordt via de pijplijn naar de Select-String
cmdlet verzonden. Select-String
gebruikt de parameter InputObject . De $_
variabele vertegenwoordigt het huidige object en message
is een eigenschap van de gebeurtenis. De parameter Pattern geeft de tekenreeks Mislukt en zoekt naar overeenkomsten in $_.message
. Select-String
geeft de uitvoer weer in de PowerShell-console.
Voorbeeld 6: Een tekenreeks zoeken in submappen
In dit voorbeeld wordt in een map en alle submappen gezocht naar een specifieke tekenreeks.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse |
Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
gebruikt de parameter Path om C:\Windows\System32*.txt op te geven. De parameter Recurse bevat de submappen. De objecten worden naar de pijplijn Select-String
verzonden.
Select-String
gebruikt de parameter Pattern en geeft de tekenreeks Microsoft op. De parameter CaseSensitive wordt gebruikt om het exacte hoofdlettergebruik van de tekenreeks te vinden. Select-String
geeft de uitvoer weer in de PowerShell-console.
Notitie
Afhankelijk van uw machtigingen ziet u mogelijk geweigerde berichten van Access in de uitvoer.
Voorbeeld 7: Tekenreeksen zoeken die niet overeenkomen met een patroon
In dit voorbeeld ziet u hoe u regels met gegevens uitsluit die niet overeenkomen met een patroon.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
De Get-Command
cmdlet verzendt objecten in de pijplijn naar de Out-File
pijplijn om het Command.txt-bestand in de huidige map te maken. Select-String
gebruikt de parameter Path om het Command.txt-bestand op te geven. De parameter Pattern geeft Get en Set op als het zoekpatroon. De parameter NotMatch sluit Ophalen en instellen uit van de resultaten.
Select-String
geeft de uitvoer weer in de PowerShell-console waarin Get of Set niet is opgenomen.
Voorbeeld 8: Regels voor en na een overeenkomst zoeken
In dit voorbeeld ziet u hoe u de regels voor en na het overeenkomende patroon kunt ophalen.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get-Computer' -Context 2, 3
Command.txt:986:Cmdlet Get-CmsMessage 6.1.0.0 Microsoft.PowerShell.Security
Command.txt:987:Cmdlet Get-Command 6.1.2.0 Microsoft.PowerShell.Core
> Command.txt:988:Cmdlet Get-ComputerInfo 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:990:Cmdlet Get-Content 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:991:Cmdlet Get-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:992:Cmdlet Get-Credential 6.1.0.0 Microsoft.PowerShell.Security
De Get-Command
cmdlet verzendt objecten in de pijplijn naar de Out-File
pijplijn om het Command.txt-bestand in de huidige map te maken. Select-String
gebruikt de parameter Path om het Command.txt-bestand op te geven. De patroonparameter geeft aan Get-Computer
als het zoekpatroon. De contextparameter gebruikt twee waarden, vóór en na, en markeert patroonovereenkomsten in de uitvoer met een punthaak (>
). De contextparameter voert de twee regels uit vóór de eerste patroonovereenkomst en drie regels na de laatste patroonovereenkomst.
Voorbeeld 9: Alle patroonovereenkomsten zoeken
In dit voorbeeld ziet u hoe met de parameter AllMatches elke patroonovereenkomst in een tekstregel wordt gevonden. Select-String
Standaard wordt alleen het eerste exemplaar van een patroon in een tekstregel gevonden. In dit voorbeeld worden objecteigenschappen gebruikt die worden gevonden met de Get-Member
cmdlet.
$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Program Files\PowerShell\7\en-US\default.help.txt:3: PowerShell Help System
C:\Program Files\PowerShell\7\en-US\default.help.txt:6: Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\7\en-US\default.help.txt:9: PowerShell Help describes PowerShell cmdlets
$A.Matches
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 4
Length : 10
Value : PowerShell
$A.Matches.Length
8
$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length
9
De Get-ChildItem
cmdlet maakt gebruik van de path-parameter . De parameter Path gebruikt de variabele $PSHOME
waarmee de PowerShell-map wordt opgegeven. De rest van het pad bevat de submap en-US en geeft elk *.txt
bestand in de map op. De Get-ChildItem
objecten worden opgeslagen in de $A
variabele. De $A
variabele wordt via de pijplijn naar de Select-String
cmdlet verzonden. Select-String
gebruikt de parameter Pattern om elk bestand te zoeken naar de tekenreeks PowerShell.
Vanaf de PowerShell-opdrachtregel wordt de inhoud van de $A
variabele weergegeven. Er is een regel die twee exemplaren van de tekenreeks PowerShell bevat.
De $A.Matches
eigenschap vermeldt het eerste exemplaar van het patroon PowerShell op elke regel.
De $A.Matches.Length
eigenschap telt het eerste exemplaar van het patroon PowerShell op elke regel.
De $B
variabele gebruikt dezelfde Get-ChildItem
en Select-String
cmdlets, maar voegt de parameter AllMatches toe. AllMatches vindt elk exemplaar van het patroon PowerShell op elke regel. De objecten die zijn opgeslagen in de $A
en $B
variabelen zijn identiek.
De $B.Matches.Length
eigenschap neemt toe omdat voor elke regel elk exemplaar van het patroon PowerShell wordt geteld.
Voorbeeld 10: Pijplijnobjecten converteren naar tekenreeksen met behulp van 'Out-String'
Het ToString()
resultaat van het piped-object is niet dezelfde rijke tekenreeksweergave die wordt geproduceerd door het opmaaksysteem van PowerShell. Daarom moet u de objecten misschien eerst doorsluisen naar Out-String
de objecten.
Leidingen om de opgemaakte uitvoer te Out-String
converteren naar één object met meerdere regels. Dit betekent dat wanneer Select-String
een overeenkomst wordt gevonden, de hele tekenreeks met meerdere regels wordt uitgevoerd.
PS> $hash = @{
Name = 'foo'
Category = 'bar'
}
# !! NO output, due to .ToString() conversion
$hash | Select-String -Pattern 'foo'
# Out-String converts the output to a single multi-line string object
PS> $hash | Out-String | Select-String -Pattern 'foo'
Name Value
---- -----
Name foo
Category bar
# Out-String -Stream converts the output to a multiple single-line string objects
PS> $hash | Out-String -Stream | Select-String -Pattern 'foo'
Name foo
Piping om de opgemaakte uitvoer te Out-String -Stream
converteren naar meerdere tekenreeksobjecten met één regel. Dit betekent dat wanneer Select-String
een overeenkomst wordt gevonden, alleen de overeenkomende lijn wordt uitgevoerd.
Parameters
-AllMatches
Geeft aan dat de cmdlet zoekt naar meer dan één overeenkomst in elke tekstregel. Zonder deze parameter vindt Select-String
u alleen de eerste overeenkomst in elke tekstregel.
Wanneer Select-String
er meerdere overeenkomsten in een tekstregel worden gevonden, wordt er nog steeds slechts één MatchInfo-object voor de regel verzonden, maar bevat de eigenschap Overeenkomsten van het object alle overeenkomsten.
Notitie
Deze parameter wordt genegeerd wanneer deze wordt gebruikt in combinatie met de parameter SimpleMatch . Als u alle overeenkomsten wilt retourneren en het patroon waarnaar u zoekt, reguliere expressietekens bevat, moet u deze tekens ontsnappen in plaats van SimpleMatch te gebruiken. Zie about_Regular_Expressions voor meer informatie over het ontsnappen van reguliere expressies.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-CaseSensitive
Geeft aan dat de cmdlet-overeenkomsten hoofdlettergevoelig zijn. Overeenkomsten zijn standaard niet hoofdlettergevoelig.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Context
Legt het opgegeven aantal regels voor en na de regel vast die overeenkomt met het patroon.
Als u één getal invoert als de waarde van deze parameter, bepaalt dat getal het aantal regels dat is vastgelegd voor en na de overeenkomst. Als u twee getallen als waarde invoert, bepaalt het eerste getal het aantal regels vóór de overeenkomst en het tweede getal bepaalt het aantal regels na de overeenkomst. Bijvoorbeeld: -Context 2,3
.
In de standaardweergave worden lijnen met een overeenkomst aangegeven door een rechte hoekhaak () (>
ASCII 62) in de eerste kolom van de weergave. Niet-gemarkeerde lijnen zijn de context.
De contextparameter wijzigt niet het aantal objecten dat door Select-String
.
Select-String
genereert één MatchInfo-object voor elke overeenkomst. De context wordt opgeslagen als een matrix met tekenreeksen in de eigenschap Context van het object.
Wanneer de uitvoer van een opdracht naar een Select-String
andere Select-String
opdracht wordt verzonden, doorzoekt de ontvangende opdracht alleen de tekst op de overeenkomende regel. De overeenkomende regel is de waarde van de eigenschap Lijn van het Object MatchInfo , niet de tekst in de contextlijnen. Als gevolg hiervan is de contextparameter niet geldig voor de ontvangende Select-String
opdracht.
Wanneer de context een overeenkomst bevat, bevat het MatchInfo-object voor elke overeenkomst alle contextlijnen, maar de overlappende lijnen worden slechts eenmaal weergegeven in de weergave.
Type: | Int32[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Culture
Hiermee geeft u een cultuurnaam die overeenkomt met het opgegeven patroon. De parameter Culture moet worden gebruikt met de parameter SimpleMatch . Het standaardgedrag maakt gebruik van de cultuur van de huidige PowerShell-runspace (sessie).
Gebruik Get-Culture -ListAvailable
de opdracht om een lijst met alle ondersteunde culturen op te halen.
Bovendien accepteert deze parameter de volgende argumenten:
- CurrentCulture, dat is standaard;
- Ordinaal, dat is niet-taalkundige binaire vergelijking;
- Invariant, dat is cultuuronafhankelijke vergelijking.
Met Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
de opdracht krijgt u de snelste binaire vergelijking.
De parameter Cultuur gebruikt tabvoltooiing om door de lijst met argumenten te bladeren waarmee de beschikbare culturen worden opgegeven. Als u alle beschikbare argumenten wilt weergeven, gebruikt u de volgende opdracht:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
Zie CultureInfo.Name voor meer informatie over de eigenschap .NET CultureInfo.Name.
De cultuurparameter is geïntroduceerd in PowerShell 7.
Type: | String |
Position: | Named |
Default value: | Culture of the current PowerShell session |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Encoding
Hiermee geeft u het type codering voor het doelbestand. De standaardwaarde is utf8NoBOM
.
De acceptabele waarden voor deze parameter zijn als volgt:
ascii
: gebruikt de codering voor de ASCII-tekenset (7-bits).ansi
: Gebruikt de codering voor de ANSI-codepagina van de huidige cultuur. Deze optie is toegevoegd in PowerShell 7.4.bigendianunicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.bigendianutf32
: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.oem
: maakt gebruik van de standaardcodering voor MS-DOS en consoleprogramma's.unicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.utf7
: Codeert in UTF-7-indeling.utf8
: Codeert in UTF-8-indeling.utf8BOM
: Codeert in UTF-8-indeling met Byte Order Mark (BOM)utf8NoBOM
: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)utf32
: Codeert in UTF-32-indeling.
Vanaf PowerShell 6.2 staat de coderingsparameter ook numerieke id's toe van geregistreerde codepagina's (zoals -Encoding 1251
) of tekenreeksnamen van geregistreerde codepagina's (zoals-Encoding "windows-1251"
). Zie de .NET-documentatie voor Encoding.CodePage voor meer informatie.
Vanaf PowerShell 7.4 kunt u de Ansi
waarde voor de coderingsparameter gebruiken om de numerieke id voor de ANSI-codepagina van de huidige cultuur door te geven zonder deze handmatig op te geven.
Notitie
UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt een waarschuwing geschreven als u opgeeft utf7
voor de coderingsparameter .
Type: | Encoding |
Geaccepteerde waarden: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Exclude
Sluit de opgegeven items uit. De waarde van deze parameter komt in aanmerking voor de path-parameter . Voer een padelement of patroon in, zoals *.txt
. Jokertekens zijn toegestaan.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-Include
Bevat de opgegeven items. De waarde van deze parameter komt in aanmerking voor de path-parameter . Voer een padelement of patroon in, zoals *.txt
. Jokertekens zijn toegestaan.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-InputObject
Hiermee geeft u de tekst die moet worden doorzocht. Voer een variabele in die de tekst bevat of typ een opdracht of expressie die de tekst ophaalt.
Het gebruik van de parameter InputObject is niet hetzelfde als het verzenden van tekenreeksen naar de pijplijn Select-String
.
Wanneer u meerdere tekenreeksen doorgeeft aan de Select-String
cmdlet, wordt gezocht naar de opgegeven tekst in elke tekenreeks en wordt elke tekenreeks geretourneerd die de zoektekst bevat.
Wanneer u de parameter InputObject gebruikt om een verzameling tekenreeksen te verzenden, Select-String
wordt de verzameling behandeld als één gecombineerde tekenreeks. Select-String
retourneert de tekenreeksen als een eenheid als de zoektekst in een willekeurige tekenreeks wordt gevonden.
FileInfo-objecten worden behandeld als een pad naar een bestand. Wanneer bestandspaden worden opgegeven, wordt de inhoud van het bestand doorzocht, Select-String
niet in de ToString()
weergave van het object.
Type: | PSObject |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-List
Alleen het eerste exemplaar van overeenkomende tekst wordt geretourneerd uit elk invoerbestand. Dit is de meest efficiënte manier om een lijst met bestanden op te halen die overeenkomen met de reguliere expressie.
Retourneert standaard Select-String
een MatchInfo-object voor elke overeenkomst die wordt gevonden.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-LiteralPath
Hiermee geeft u het pad naar de bestanden die moeten worden doorzocht. De waarde van de parameter LiteralPath wordt exact gebruikt zoals deze wordt getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat er geen tekens als escapereeksen moeten worden geïnterpreteerd. Zie about_Quoting_Rules voor meer informatie.
Type: | String[] |
Aliassen: | PSPath, LP |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-NoEmphasis
Markeert standaard Select-String
de tekenreeks die overeenkomt met het patroon dat u hebt gezocht met de parameter Pattern . De parameter NoEmphasis schakelt de markering uit.
De nadruk gebruikt negatieve kleuren op basis van uw PowerShell-achtergrond- en tekstkleuren. Als uw PowerShell-kleuren bijvoorbeeld een zwarte achtergrond met witte tekst zijn. De nadruk ligt op een witte achtergrond met zwarte tekst.
Deze parameter is geïntroduceerd in PowerShell 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-NotMatch
De parameter NotMatch zoekt tekst die niet overeenkomt met het opgegeven patroon.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Path
Hiermee geeft u het pad naar de bestanden te zoeken. Jokertekens zijn toegestaan. De standaardlocatie is de lokale map.
Geef bestanden op in de map, zoals log1.txt
, *.doc
of *.*
. Als u alleen een map opgeeft, mislukt de opdracht.
Type: | String[] |
Position: | 1 |
Default value: | Local directory |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | True |
-Pattern
Hiermee geeft u de tekst die op elke regel moet worden gevonden. De patroonwaarde wordt behandeld als een reguliere expressie.
Zie about_Regular_Expressions voor meer informatie over reguliere expressies.
Type: | String[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Quiet
Geeft aan dat de cmdlet een eenvoudig antwoord retourneert in plaats van een MatchInfo-object . De geretourneerde waarde is $true
als het patroon wordt gevonden of $null
als het patroon niet wordt gevonden.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Raw
Zorgt ervoor dat de cmdlet alleen de overeenkomende tekenreeksen uitvoert in plaats van MatchInfo-objecten . Dit zijn de resultaten in gedrag dat het meest lijkt op de Unix-grep- of Windows-findstr.exe-opdrachten.
Deze parameter is geïntroduceerd in PowerShell 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-SimpleMatch
Geeft aan dat de cmdlet een eenvoudige overeenkomst gebruikt in plaats van een reguliere expressieovereenkomst. In een eenvoudige overeenkomst zoekt Select-String
u in de invoer naar de tekst in de parameter Patroon . De waarde van de parameter Pattern wordt niet geïnterpreteerd als een reguliere expressie-instructie.
Wanneer SimpleMatch wordt gebruikt, is de eigenschap Matches van het geretourneerde MatchInfo-object ook leeg.
Notitie
Wanneer deze parameter wordt gebruikt met de parameter AllMatches , wordt de AllMatches genegeerd.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object met een ToString()
methode naar deze cmdlet doorsluisen.
Uitvoerwaarden
Deze cmdlet retourneert standaard een MatchInfo-object voor elke gevonden overeenkomst.
Wanneer u de parameter Quiet gebruikt, retourneert deze cmdlet een Booleaanse waarde die aangeeft of het patroon is gevonden.
Wanneer u de parameter Raw gebruikt, retourneert deze cmdlet een set tekenreeksobjecten die overeenkomen met het patroon.
Notities
PowerShell bevat de volgende aliassen voor Select-String
:
- Alle platforms:
sls
Select-String
is vergelijkbaar met grep
in UNIX of findstr.exe
in Windows.
De sls
alias voor de Select-String
cmdlet is geïntroduceerd in PowerShell 3.0.
Notitie
Volgens goedgekeurde werkwoorden voor PowerShell-opdrachten is sc
het officiële aliasvoorvoegsel voor Select-*
cmdlets niet sl
. Daarom moet de juiste alias Select-String
zijn scs
, niet sls
. Dit is een uitzondering op deze regel.
Bij het doorsluisen van objecten naar Select-String
:
- FileInfo-objecten worden behandeld als een pad naar een bestand. Wanneer bestandspaden worden opgegeven, wordt de inhoud van het bestand doorzocht,
Select-String
niet in deToString()
weergave van het object. - Het
ToString()
resultaat van het piped-object is niet dezelfde rijke tekenreeksweergave die wordt geproduceerd door het opmaaksysteem van PowerShell. Daarom moet u de objecten misschien eerst doorsluisen naarOut-String
de objecten. Zie voorbeeld 10 voor meer informatie.
Als u wilt gebruiken Select-String
, typt u de tekst die u wilt vinden als de waarde van de parameter Patroon . Gebruik de volgende criteria om de te doorzoeken tekst op te geven:
- Typ de tekst in een aanhalingstekenreeks en sluis deze vervolgens door naar
Select-String
. - Sla een tekenreeks op in een variabele en geef vervolgens de variabele op als de waarde van de parameter InputObject .
- Als de tekst in bestanden is opgeslagen, gebruikt u de parameter Path om het pad naar de bestanden op te geven.
Select-String
Interpreteert standaard de waarde van de patroonparameter als een reguliere expressie. Zie about_Regular_Expressions voor meer informatie. U kunt de parameter SimpleMatch gebruiken om de reguliere expressiekoppeling te overschrijven. Met de parameter SimpleMatch worden exemplaren gevonden van de waarde van de parameter Pattern in de invoer.
De standaarduitvoer is Select-String
een MatchInfo-object , dat gedetailleerde informatie over de overeenkomsten bevat. De informatie in het object is handig wanneer u naar tekst in bestanden zoekt, omdat MatchInfo-objecten eigenschappen hebben zoals Bestandsnaam en Lijn. Wanneer de invoer niet afkomstig is uit het bestand, is de waarde van deze parameters InputStream.
Als u de informatie niet nodig hebt in het Object MatchInfo , gebruikt u de parameter Quiet . De parameter Quiet retourneert een Booleaanse waarde (Waar of Onwaar) om aan te geven of er een overeenkomst is gevonden in plaats van een MatchInfo-object .
Bij overeenkomende woordgroepen wordt Select-String
de huidige cultuur gebruikt die is ingesteld voor het systeem. Gebruik de Get-Culture
cmdlet om de huidige cultuur te vinden.
Als u de eigenschappen van een MatchInfo-object wilt zoeken, typt u de volgende opdracht:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *