Delen via


Select-String

Hiermee vindt u tekst in tekenreeksen en bestanden.

Syntaxis

File (Standaard)

Select-String
    [-Pattern] <String[]>
    [-Path] <String[]>
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-Quiet]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

ObjectRaw

Select-String
    [-Pattern] <String[]>
    -InputObject <PSObject>
    -Raw
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

Object

Select-String
    [-Pattern] <String[]>
    -InputObject <PSObject>
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-Quiet]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

FileRaw

Select-String
    [-Pattern] <String[]>
    [-Path] <String[]>
    -Raw
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

LiteralFileRaw

Select-String
    [-Pattern] <String[]>
    -LiteralPath <String[]>
    -Raw
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

LiteralFile

Select-String
    [-Pattern] <String[]>
    -LiteralPath <String[]>
    [-Culture <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 tekstregels. Standaard Select-String wordt de eerste overeenkomst in elke regel gezocht en voor elke overeenkomst worden de bestandsnaam, het regelnummer en alle tekst in de regel met de overeenkomst weergegeven. U kunt opdracht geven Select-String om meerdere overeenkomsten per regel te vinden, tekst voor en na de overeenkomst weer te geven of een Booleaanse waarde (Waar of Onwaar) weer te geven 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 aangeven dat Select-String u een bepaalde tekencodering mag verwachten, bijvoorbeeld wanneer u zoekt naar bestanden met Unicode-tekst. 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 gemaakt van de tekst die door de pijplijn naar de Select-String cmdlet is verzonden.

'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch

De tekstreeksen Hello en HELLO worden door 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 hoofdletter alleen moet overeenkomen met het patroon in hoofdletters. 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. De uitvoer geeft de regels weer in die 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 en Get-Command worden gebruikt met de Out-File cmdlet om twee tekstbestanden in de huidige map te maken, Alias.txt en Command.txt.

Select-String gebruikt de parameter Path met het sterretje () jokerteken om* alle bestanden in de huidige map met de bestandsnaamextensie .txtte doorzoeken. De parameter Patroon geeft de tekst op die overeenkomt met Get-. Select-String geeft de uitvoer weer in de PowerShell-console. De bestandsnaam en het regelnummer gaan vooraf aan elke inhoudsregel die een overeenkomst bevat voor de parameter Patroon .

Voorbeeld 3: Zoek een patroon dat overeenkomt

In dit voorbeeld worden meerdere bestanden doorzocht om overeenkomsten te vinden voor het opgegeven patroon. Het patroon maakt gebruik van een kwantificator voor reguliere expressies. Zie about_Regular_Expressionsvoor 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, Pad en Patroon. De parameter Path maakt gebruik van de variabele $PSHOME die de PowerShell-map opgeeft. De rest van het pad bevat de submap en-US en specificeert elk *.txt bestand in de map. De parameter Patroon geeft aan dat er een vraagteken (?) in elk bestand moet overeenkomen. Een backslash (\) wordt gebruikt als een escape-teken en is nodig omdat het vraagteken (?) een kwantificator van een reguliere expressie is. Select-String geeft de uitvoer weer in de PowerShell-console. De bestandsnaam en het regelnummer gaan vooraf aan elke inhoudsregel die een overeenkomst bevat voor de parameter Patroon .

Voorbeeld 4: Select-String gebruiken in een functie

In dit voorbeeld wordt een functie gemaakt voor het zoeken naar een patroon in de PowerShell-helpbestanden. In dit voorbeeld bestaat de functie alleen in de PowerShell-sessie. Wanneer de PowerShell-sessie wordt afgesloten, wordt de functie verwijderd. Zie about_Functionsvoor 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. Het function trefwoord gebruikt de naam Search-Help. Druk op Enter om te beginnen met het toevoegen van instructies aan de functie. Voeg vanuit de >> prompt elke instructie toe en druk op Enter zoals in het voorbeeld. Nadat het haakje sluiten is toegevoegd, wordt u teruggestuurd naar een PowerShell-prompt.

De functie bevat twee commando's. De $PSHelp variabele slaat het pad naar de PowerShell-helpbestanden op. $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 Pad en Patroon . De parameter Pad gebruikt de $PSHelp variabele om het pad op te halen. De parameter Pattern gebruikt de tekenreeks About_ als zoekcriterium.

Als u de functie wilt uitvoeren, typt u Search-Help. 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. Voor meer informatie, zie about_Automatic_Variables.

$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. De parameter MaxEvents haalt de 50 meest recente gebeurtenissen op uit het logboek. De inhoud van het logboek wordt opgeslagen in de variabele met de naam $Events.

De variabele $Events wordt naar de pijplijn verzonden naar de Select-String-cmdlet. 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 in 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* op te geven.txt. De Recurse-parameter omvat de submappen. De objecten worden via de pijpleiding naar Select-Stringverzonden.

Select-String gebruikt de parameter Pattern en geeft de tekenreeks Microsoft op. De parameter CaseSensitive wordt gebruikt om overeen te komen met het exacte hoofdlettergebruik van de tekenreeks. Select-String geeft de uitvoer weer in de PowerShell-console.

Opmerking

Afhankelijk van uw machtigingen ziet u mogelijk berichten over toegang geweigerd in de uitvoer.

Voorbeeld 7: Tekenreeksen zoeken die niet overeenkomen met een patroon

In dit voorbeeld ziet u hoe u gegevensregels kunt uitsluiten 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 door de pijplijn naar de Out-File 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 Patroon geeft Get en Set op als het zoekpatroon. De parameter NotMatch sluit Get en Set uit van de resultaten. Select-String geeft de uitvoer weer in de PowerShell-console die geen Get of Set bevat.

Voorbeeld 8: Lijnen zoeken voor en na een overeenkomst

Dit voorbeeld laat zien hoe u de lijnen voor en na het overeenkomende patroon kunt krijgen.

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 door de pijplijn naar de Out-File 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 parameter Context gebruikt twee waarden, voor en na, en markeert patroonovereenkomsten in de uitvoer met een haakje (>). De parameter Context 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. Standaard Select-String wordt alleen gezocht naar het eerste voorkomen van een patroon in een tekstregel. 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 parameter Pad . De parameter Path maakt gebruik van de variabele $PSHOME die de PowerShell-map opgeeft. De rest van het pad bevat de submap en-US en specificeert elk *.txt bestand in de map. De Get-ChildItem objecten worden opgeslagen in de $A variabele. De variabele $A wordt naar de pijplijn verzonden naar de Select-String-cmdlet. Select-String gebruikt de parameter Pattern om in elk bestand te zoeken naar de PowerShell-tekenreeks.

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 geeft het eerste exemplaar van het patroon PowerShell op elke regel weer.

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 zoekt naar elk exemplaar van het patroon PowerShell op elke regel. De objecten die zijn opgeslagen in de $A en variabelen $B 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 Select-String wordt alleen de eerste overeenkomst in elke tekstregel gevonden.

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.

Opmerking

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.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-CaseSensitive

Geeft aan dat de cmdlet-overeenkomsten hoofdlettergevoelig zijn. Overeenkomsten zijn standaard niet hoofdlettergevoelig.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Context

Hiermee wordt het opgegeven aantal regels voor en na de regel vastgelegd die overeenkomt met het patroon.

Als u één getal invoert als de waarde van deze parameter, bepaalt dat getal het aantal regels dat voor en na de wedstrijd wordt vastgelegd. Als u twee getallen als waarde invoert, bepaalt het eerste getal het aantal regels vóór de overeenkomst en het tweede getal het aantal regels na de overeenkomst. Bijvoorbeeld: -Context 2,3.

In het standaardscherm worden lijnen met een overeenkomst aangegeven door een haakje in rechte hoek (>) (ASCII 62) in de eerste kolom van het scherm. Ongemarkeerde lijnen vormen de context.

De parameter Context heeft geen invloed op het aantal objecten dat wordt gegenereerd 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 Select-String opdracht door de pijplijn naar een andere Select-String opdracht wordt verzonden, zoekt de ontvangende opdracht alleen naar de tekst in de overeenkomende regel. De overeenkomende regel is de waarde van de eigenschap Regel van het MatchInfo-object , niet de tekst in de contextregels. Als gevolg hiervan is de parameter Context niet geldig voor de ontvangende Select-String opdracht.

Als de context een overeenkomst bevat, bevat het MatchInfo-object voor elke overeenkomst alle contextregels, maar worden de overlappende regels slechts één keer in het scherm weergegeven.

Parametereigenschappen

Type:

Int32[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten: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.

Parametereigenschappen

Type:String
Default value:Culture of the current PowerShell session
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten: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: maakt gebruik van 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: Encodeert in UTF-16-indeling met de little-endian-bytevolgorde.
  • utf7: Codeert in UTF-7-formaat.
  • utf8: Codeert in de UTF-8-indeling.
  • utf8BOM: Codeert in UTF-8-formaat 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 parameter Coderings- 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.CodePagevoor 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.

Opmerking

UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt een waarschuwing geschreven als u utf7 opgeeft voor de parameter codering.

Parametereigenschappen

Type:Encoding
Default value:UTF8NoBOM
Geaccepteerde waarden:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Exclude

Sluit de opgegeven items uit. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of patroon in, zoals *.txt. Wildcards zijn toegestaan.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Include

Bevat de gespecificeerde items. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of patroon in, zoals *.txt. Wildcards zijn toegestaan.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-InputObject

Geeft de tekst op die moet worden doorzocht. Voer een variabele in die de tekst bevat of typ een opdracht of expressie waarmee de tekst wordt opgehaald.

Het gebruik van de parameter InputObject is niet hetzelfde als het verzenden van tekenreeksen door de pijplijn naar Select-String.

Wanneer u meer dan één tekenreeks naar de Select-String cmdlet pipet, 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 in te dienen, Select-String wordt de verzameling als één gecombineerde tekenreeks behandeld. Select-String Retourneert de tekenreeksen als een eenheid als de zoektekst in een 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.

Parametereigenschappen

Type:PSObject
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Object
Position:Named
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ObjectRaw
Position:Named
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten: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 een Select-String voor elke gevonden overeenkomst.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-LiteralPath

Hiermee geeft u het pad op naar de bestanden die moeten worden doorzocht. De waarde van de parameter LiteralPath wordt exact gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escape-tekens bevat, zet het dan tussen enkele aanhalingstekens. Enkele aanhalingstekens zorgen ervoor dat PowerShell geen tekens als escapesequenties interpreteert. Zie about_Quoting_Rulesvoor meer informatie.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:PSPath, LP

Parametersets

LiteralFileRaw
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
LiteralFile
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten: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.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-NotMatch

Met de parameter NotMatch wordt gezocht naar tekst die niet overeenkomt met het opgegeven patroon.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Path

Hiermee geeft u het pad op naar de bestanden die u wilt doorzoeken. Wildcards 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.

Parametereigenschappen

Type:

String[]

Default value:Local directory
Ondersteunt jokertekens:True
DontShow:False

Parametersets

File
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FileRaw
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Pattern

Hiermee geeft u de tekst op 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.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten: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.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

File
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Object
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
LiteralFile
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten: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.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ObjectRaw
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FileRaw
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
LiteralFileRaw
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-SimpleMatch

Geeft aan dat de cmdlet gebruikmaakt van een eenvoudige overeenkomst in plaats van een overeenkomst met reguliere expressies. In een eenvoudige overeenkomst Select-String wordt in de invoer gezocht naar de tekst in de parameter Patroon . De waarde van de parameter Pattern wordt niet geïnterpreteerd als een instructie voor reguliere expressies.

Wanneer SimpleMatch wordt gebruikt, is de eigenschap Matches van het geretourneerde MatchInfo-object ook leeg.

Opmerking

Wanneer deze parameter wordt gebruikt met de parameter AllMatches , wordt de AllMatches genegeerd.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

PSObject

U kunt elk object met een ToString() methode naar deze cmdlet doorsluisen.

Uitvoerwaarden

MatchInfo

Deze cmdlet retourneert standaard een MatchInfo-object voor elke gevonden overeenkomst.

Boolean

Wanneer u de parameter Quiet gebruikt, retourneert deze cmdlet een Booleaanse waarde die aangeeft of het patroon is gevonden.

String

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.

Opmerking

Volgens Approved Verbs for PowerShell Commands is Select-*het officiële aliasvoorvoegsel voor sc cmdlets , niet sl. Daarom zou de juiste alias voor Select-String moeten 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 de ToString() 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 naar Out-String de objecten. Zie voorbeeld 10 voor meer informatie.

Als u wilt gebruiken Select-String, typt u de tekst die u wilt zoeken als de waarde van de parameter Patroon . Gebruik de volgende criteria om de tekst op te geven waarnaar moet worden gezocht:

  • Typ de tekst in een tekenreeks tussen aanhalingstekens en pijp deze vervolgens naar Select-String.
  • Sla een tekenreeks op in een variabele en geef de variabele vervolgens op als de waarde van de parameter InputObject .
  • Als de tekst is opgeslagen in bestanden, gebruikt u de parameter Pad om het pad naar de bestanden op te geven.

Standaard Select-String wordt de waarde van de parameter Pattern geïnterpreteerd als een reguliere expressie. Zie about_Regular_Expressionsvoor meer informatie. U kunt de parameter SimpleMatch gebruiken om de overeenkomst met reguliere expressies te overschrijven. Met de parameter SimpleMatch zoekt u naar exemplaren van de waarde van de parameter Pattern in de invoer.

De standaarduitvoer van Select-String is een MatchInfo-object , dat gedetailleerde informatie over de overeenkomsten bevat. De informatie in het object is handig wanneer u zoekt naar tekst in bestanden, omdat MatchInfo-objecten eigenschappen hebben zoals Bestandsnaam en Regel. Als de invoer niet afkomstig is uit het bestand, is de waarde van deze parameters InputStream.

Als u de informatie in het MatchInfo-object niet nodig hebt, gebruikt u de parameter Stil . 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 het matchen van zinnen, Select-String gebruikt de huidige cultuur die voor het systeem is ingesteld. Gebruik de Get-Culture cmdlet om de huidige cultuur te vinden.

Als u de eigenschappen van een MatchInfo-object wilt vinden, typt u de volgende opdracht:

Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *