Dela via


Select-String

Söker efter text i strängar och filer.

Syntax

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

Cmdleten Select-String använder matchning av reguljära uttryck för att söka efter textmönster i indatasträngar och filer. Du kan använda Select-String liknande grep i UNIX eller findstr.exe i Windows.

Select-String baseras på textrader. Som standard Select-String hittar den första matchningen på varje rad och för varje matchning visas filnamnet, radnumret och all text på raden som innehåller matchningen. Du kan dirigera Select-String till att hitta flera matchningar per rad, visa text före och efter matchningen eller visa ett booleskt värde (Sant eller Falskt) som anger om en matchning hittas.

Select-String kan visa alla textmatchningar eller stoppa efter den första matchningen i varje indatafil. Select-String kan användas för att visa all text som inte matchar det angivna mönstret.

Du kan också ange att Select-String du bör förvänta dig en viss teckenkodning, till exempel när du söker i filer med Unicode-text. Select-String använder byte-order-mark (BOM) för att identifiera filens kodningsformat. Om filen inte har någon BOM förutsätter den att kodningen är UTF8.

Exempel

Exempel 1: Hitta en skiftlägeskänslig matchning

Det här exemplet gör en skiftlägeskänslig matchning av texten som skickades ned i pipelinen till cmdleten Select-String .

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

Textsträngarna Hello och HELLO skickas nedåt i pipelinen till cmdletenSelect-String. Select-String använder parametern Pattern för att ange HELLO. Parametern CaseSensitive anger att skiftläget endast måste matcha versaler. SimpleMatch är en valfri parameter och anger att strängen i mönstret inte tolkas som ett reguljärt uttryck. Select-String visar HELLO i PowerShell-konsolen.

Exempel 2: Hitta matchningar i textfiler

Det här kommandot söker igenom alla filer med filnamnstillägget .txt i den aktuella katalogen. Utdata visar raderna i de filer som innehåller den angivna strängen.

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

I det här exemplet Get-Alias används och Get-Command med cmdleten Out-File för att skapa två textfiler i den aktuella katalogen ,Alias.txt och Command.txt.

Select-Stringanvänder sökvägsparametern med jokertecknet asterisk (*) för att söka i alla filer i den aktuella katalogen med filnamnstillägget ..txt Parametern Pattern anger den text som ska matcha Get-. Select-String visar utdata i PowerShell-konsolen. Filnamnet och radnumret föregår varje innehållsrad som innehåller en matchning för parametern Pattern .

Exempel 3: Hitta en mönstermatchning

I det här exemplet genomsöks flera filer för att hitta matchningar för det angivna mönstret. Mönstret använder en kvantifierare för reguljära uttryck. Mer information finns i 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

Cmdleten Select-String använder två parametrar: Path och Pattern. Parametern Path använder variabeln $PSHOME som anger PowerShell-katalogen. Resten av sökvägen innehåller underkatalogen en-US och anger varje *.txt fil i katalogen. Parametern Pattern anger att den ska matcha ett frågetecken (?) i varje fil. Ett omvänt snedstreck (\) används som escape-tecken och är nödvändigt eftersom frågetecknet (?) är en kvantifierare för reguljära uttryck. Select-String visar utdata i PowerShell-konsolen. Filnamnet och radnumret föregår varje innehållsrad som innehåller en matchning för parametern Pattern .

Exempel 4: Använd Select-String i en funktion

Det här exemplet skapar en funktion för att söka efter ett mönster i PowerShell-hjälpfilerna. I det här exemplet finns funktionen bara i PowerShell-sessionen. När PowerShell-sessionen stängs tas funktionen bort. Mer information finns i about_Functions.

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

Funktionen skapas på PowerShell-kommandoraden. Kommandot Function använder namnet Search-Help. Tryck på Retur för att börja lägga till -instruktioner i funktionen. Lägg till varje instruktion från prompten >> och tryck på Retur enligt exemplet. När den avslutande hakparentesen har lagts till återgår du till en PowerShell-prompt.

Funktionen innehåller två kommandon. Variabeln $PSHelp lagrar sökvägen till PowerShell-hjälpfilerna. $PSHOME är PowerShell-installationskatalogen med underkatalogen en-US som anger varje *.txt fil i katalogen.

Kommandot Select-String i funktionen använder parametrarna Path och Pattern . Parametern Path använder variabeln $PSHelp för att hämta sökvägen. Parametern Pattern använder strängen About_ som sökvillkor.

Om du vill köra funktionen skriver du Search-Help. Funktionens Select-String kommando visar utdata i PowerShell-konsolen.

Exempel 5: Search för en sträng i en Windows-händelselogg

Det här exemplet söker efter en sträng i en Windows-händelselogg. Variabeln $_ representerar det aktuella objektet i pipelinen. Mer information finns i about_Automatic_Variables.

$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'

Cmdleten Get-WinEvent använder logname-parametern för att ange programloggen. Parametern MaxEvents hämtar de 50 senaste händelserna från loggen. Logginnehållet lagras i variabeln med namnet $Events.

Variabeln $Events skickas nedåt i pipelinen till cmdleten Select-String . Select-String använder parametern InputObject . Variabeln $_ representerar det aktuella objektet och message är en egenskap för händelsen. Parametern Pattern artar strängen Failed (Misslyckades ) och söker efter matchningar i $_.message. Select-String visar utdata i PowerShell-konsolen.

Exempel 6: Hitta en sträng i underkataloger

Det här exemplet söker i en katalog och alla dess underkataloger efter en specifik textsträng.

Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse | Select-String -Pattern 'Microsoft' -CaseSensitive

Get-ChildItem använder parametern Path för att ange C:\Windows\System32*.txt. Parametern Recurse innehåller underkatalogerna. Objekten skickas nedåt i pipelinen till Select-String.

Select-String använder parametern Pattern och anger strängen Microsoft. Parametern CaseSensitive används för att matcha strängens exakta skiftläge. Select-String visar utdata i PowerShell-konsolen.

Anteckning

Beroende på dina behörigheter kan du se Åtkomst nekade meddelanden i utdata.

Exempel 7: Hitta strängar som inte matchar ett mönster

Det här exemplet visar hur du exkluderar datarader som inte matchar ett mönster.

Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set'  -NotMatch

Cmdleten Get-Command skickar objekt nedåt i pipelinen till Out-File för att skapa denCommand.txt filen i den aktuella katalogen. Select-String använder parametern Path för att ange denCommand.txt filen. Parametern Pattern anger Get och Set som sökmönster. Parametern NotMatch utesluter Get och Set från resultatet. Select-String visar utdata i PowerShell-konsolen som inte innehåller Hämta eller Ange.

Exempel 8: Hitta rader före och efter en matchning

Det här exemplet visar hur du hämtar raderna före och efter det matchade mönstret.

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

Cmdleten Get-Command skickar objekt nedåt i pipelinen till Out-File för att skapa denCommand.txt filen i den aktuella katalogen. Select-String använder parametern Path för att ange denCommand.txt filen. Parametern Pattern anger Get-Computer som sökmönster. Parametern Context använder två värden, före och efter, och markerar mönstermatchningar i utdata med en vinkelparentes (>). Parametern Context matar ut de två raderna före den första mönstermatchningen och tre rader efter den sista mönstermatchningen.

Exempel 9: Hitta alla mönstermatchningar

Det här exemplet visar hur parametern AllMatches hittar varje mönstermatchning i en textrad. Som standard Select-String hittar bara den första förekomsten av ett mönster i en textrad. I det här exemplet används objektegenskaper som hittas med cmdleten Get-Member .

$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

Cmdleten Get-ChildItem använder parametern Path . Parametern Path använder variabeln $PSHOME som anger PowerShell-katalogen. Resten av sökvägen innehåller underkatalogen en-US och anger varje *.txt fil i katalogen. Objekten Get-ChildItem lagras i variabeln $A . Variabeln $A skickas nedåt i pipelinen till cmdleten Select-String . Select-String använder parametern Pattern för att söka i varje fil efter strängen PowerShell.

Från PowerShell-kommandoraden visas variabelinnehållet $A . Det finns en rad som innehåller två förekomster av strängen PowerShell.

Egenskapen $A.Matches visar den första förekomsten av mönstret PowerShell på varje rad.

Egenskapen $A.Matches.Length räknar den första förekomsten av mönstret PowerShell på varje rad.

Variabeln $B använder samma Get-ChildItem och Select-String cmdletar, men lägger till parametern AllMatches . AllMatches hittar varje förekomst av mönstret PowerShell på varje rad. Objekten som lagras i variablerna $A och $B är identiska.

Egenskapen $B.Matches.Length ökar eftersom för varje rad räknas varje förekomst av mönstret PowerShell .

Exempel 10 – Konvertera pipelineobjekt till strängar med hjälp av "Out-String"

Resultatet ToString() av piped-objektet är inte samma omfattande strängrepresentation som produceras av PowerShells formateringssystem. Så du kan behöva skicka objekten till Out-String först.

Rördragning för att Out-String konvertera formaterade utdata till ett enda flerradssträngsobjekt. Det innebär att när Select-String en matchning hittas matas hela flerradssträngen ut.

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

Rördragning för att Out-String -Stream konvertera formaterade utdata till flera enradssträngsobjekt. Det innebär att när Select-String en matchning hittas matas endast den matchande raden ut.

Parametrar

-AllMatches

Anger att cmdleten söker efter fler än en matchning i varje textrad. Utan den här parametern Select-String hittar du bara den första matchningen i varje textrad.

När Select-String hittar fler än en matchning i en textrad genererar den fortfarande bara ett MatchInfo-objekt för raden, men objektets matchningsegenskap innehåller alla matchningar.

Anteckning

Den här parametern ignoreras när den används i kombination med parametern SimpleMatch . Om du vill returnera alla matchningar och det mönster som du söker efter innehåller reguljära uttryckstecken måste du undvika dessa tecken i stället för att använda SimpleMatch. Mer information om hur du flyr reguljära uttryck finns i about_Regular_Expressions .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CaseSensitive

Anger att cmdlet-matchningarna är skiftlägeskänsliga. Som standard är matchningar inte skiftlägeskänsliga.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Context

Samlar in det angivna antalet rader före och efter raden som matchar mönstret.

Om du anger ett tal som värdet för den här parametern bestämmer talet antalet rader som registrerats före och efter matchningen. Om du anger två tal som värde avgör det första talet antalet rader före matchningen och det andra talet avgör antalet rader efter matchningen. Till exempel -Context 2,3.

I standardvisningen anges rader med en matchning med en höger vinkelparentes (>) (ASCII 62) i den första kolumnen i displayen. Omarkerade rader är kontexten.

Parametern Context ändrar inte antalet objekt som genereras av Select-String. Select-String genererar ett MatchInfo-objekt för varje matchning. Kontexten lagras som en matris med strängar i objektets kontextegenskap .

När utdata från ett Select-String kommando skickas ned i pipelinen till ett annat Select-String kommando söker det mottagande kommandot endast efter texten på den matchade raden. Den matchade raden är värdet för egenskapen Rad för MatchInfo-objektet , inte texten i kontextraderna. Därför är parametern Context inte giltig för det mottagande Select-String kommandot.

När kontexten innehåller en matchning innehåller MatchInfo-objektet för varje matchning alla kontextlinjer, men de överlappande raderna visas bara en gång på skärmen.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Culture

Anger ett kulturnamn som matchar det angivna mönstret. Parametern Culture måste användas med parametern SimpleMatch . Standardbeteendet använder kulturen i den aktuella PowerShell-körningsrymden (session).

Om du vill hämta en lista över alla kulturer som stöds använder du Get-Culture -ListAvailable kommandot .

Dessutom accepterar den här parametern följande argument:

  • CurrentCulture, som är standard;
  • Ordningstal, det är icke-språklig binär jämförelse;
  • Det är en kulturoberoende jämförelse.

Med Select-String -Culture Ordinal -CaseSensitive -SimpleMatch kommandot får du den snabbaste binära jämförelsen.

Parametern Kultur använder tabbifyllning för att bläddra igenom listan med argument som anger tillgängliga kulturer. Om du vill visa en lista över alla tillgängliga argument använder du följande kommando:

(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues

Mer information om egenskapen .NET CultureInfo.Name finns i CultureInfo.Name.

Parametern Kultur introducerades i PowerShell 7.

Type:String
Position:Named
Default value:Culture of the current PowerShell session
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Anger typen av kodning för målfilen. Standardvärdet är utf8NoBOM.

Godkända värden för den här parametern är följande:

  • ascii: Använder kodningen för ASCII-teckenuppsättningen (7-bitars).
  • bigendianunicode: Kodar i UTF-16-format med hjälp av den stora byteordningen.
  • bigendianutf32: Kodar i UTF-32-format med hjälp av den stora byteordningen.
  • oem: Använder standardkodning för MS-DOS och konsolprogram.
  • unicode: Kodar i UTF-16-format med den little-endianska byteordningen.
  • utf7: Kodar i UTF-7-format.
  • utf8: Kodar i UTF-8-format.
  • utf8BOM: Kodar i UTF-8-format med BOM (Byte Order Mark)
  • utf8NoBOM: Kodar i UTF-8-format utan bom (Byte Order Mark)
  • utf32: Kodar i UTF-32-format.

Från och med PowerShell 6.2 tillåter kodningsparametern även numeriska ID:er för registrerade kodsidor (till exempel -Encoding 1251) eller strängnamn för registrerade kodsidor (till exempel -Encoding "windows-1251"). Mer information finns i .NET-dokumentationen för Encoding.CodePage.

Anteckning

UTF-7* rekommenderas inte längre att använda. Från och med PowerShell 7.1 skrivs en varning om du anger utf7 för kodningsparametern .

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Undanta de angivna objekten. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel *.txt. Jokertecken tillåts.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Innehåller de angivna objekten. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel *.txt. Jokertecken tillåts.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Anger den text som ska genomsökas. Ange en variabel som innehåller texten eller skriv ett kommando eller uttryck som hämtar texten.

Att använda parametern InputObject är inte detsamma som att skicka strängar nedåt i pipelinen till Select-String.

När du skickar fler än en sträng till cmdleten söker den Select-String efter den angivna texten i varje sträng och returnerar varje sträng som innehåller söktexten.

När du använder parametern InputObject för att skicka en samling strängar behandlar Select-String samlingen som en enda kombinerad sträng. Select-String returnerar strängarna som en enhet om den hittar söktexten i en sträng.

FileInfo-objekt behandlas som en sökväg till en fil. När filsökvägar har angetts Select-String söker innehållet i filen, inte representationen ToString() av objektet.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-List

Endast den första instansen av matchande text returneras från varje indatafil. Det här är det mest effektiva sättet att hämta en lista med filer med innehåll som matchar det reguljära uttrycket.

Som standard Select-String returnerar ett MatchInfo-objekt för varje matchning som hittas.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

Anger sökvägen till de filer som ska genomsökas. Värdet för parametern LiteralPath används exakt som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken talar om för PowerShell att inga tecken ska tolkas som escape-sekvenser. Mer information finns i about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoEmphasis

Som standard Select-String markeras strängen som matchar det mönster som du sökte efter med parametern Pattern . Parametern NoEmphasis inaktiverar markeringen.

Betoningen använder negativa färger baserat på dina PowerShell-bakgrunds- och textfärger. Om dina PowerShell-färger till exempel är en svart bakgrund med vit text. Betoningen är en vit bakgrund med svart text.

Den här parametern introducerades i PowerShell 7.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NotMatch

Parametern NotMatch hittar text som inte matchar det angivna mönstret.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Anger sökvägen till filerna som ska sökas. Jokertecken tillåts. Standardplatsen är den lokala katalogen.

Ange filer i katalogen, till exempel log1.txt, *.doceller *.*. Om du bara anger en katalog misslyckas kommandot.

Type:String[]
Position:1
Default value:Local directory
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Pattern

Anger den text som ska hittas på varje rad. Mönstervärdet behandlas som ett reguljärt uttryck.

Mer information om reguljära uttryck finns i about_Regular_Expressions.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Quiet

Anger att cmdleten returnerar ett booleskt värde (Sant eller Falskt) i stället för ett MatchInfo-objekt . Värdet är True om mönstret hittas. annars är värdet False.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Raw

Gör att cmdleten endast matar ut matchande strängar i stället för MatchInfo-objekt . Detta är resultatet av beteende som liknar Unix grep - eller Windows findstr.exe-kommandon .

Den här parametern introducerades i PowerShell 7.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SimpleMatch

Anger att cmdleten använder en enkel matchning i stället för en matchning med reguljära uttryck. I en enkel matchning Select-String söker indata efter texten i parametern Pattern . Värdet för parametern Pattern tolkas inte som en reguljär uttrycksinstrukering.

När SimpleMatch används är dessutom matchningsegenskapen för det Returnerade MatchInfo-objektet tom.

Anteckning

När den här parametern används med parametern AllMatches ignoreras AllMatches .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

PSObject

Du kan skicka alla objekt som har en ToString() metod till Select-String.

Utdata

Microsoft.PowerShell.Commands.MatchInfo, System.Boolean, System.String

Som standard är utdata en uppsättning MatchInfo-objekt med en för varje matchning som hittas. Om du använder parametern Tyst är utdata ett booleskt värde som anger om mönstret hittades. Om du använder raw-parametern är utdata en uppsättning strängobjekt som matchar mönstret.

Kommentarer

Select-Stringgrep liknar i UNIX eller findstr.exe i Windows.

Aliaset sls för cmdleten Select-String introducerades i PowerShell 3.0.

Anteckning

Enligt godkända verb för PowerShell-kommandon är scdet officiella aliasprefixet för Select-* cmdletar , inte sl. Därför bör rätt alias för Select-String vara scs, inte sls. Det här är ett undantag från den här regeln.

När du rör objekt till Select-String:

  • FileInfo-objekt behandlas som en sökväg till en fil. När filsökvägar har angetts Select-String söker du igenom innehållet i filen, inte representationen ToString() av objektet.
  • Resultatet ToString() av piped-objektet är inte samma omfattande strängrepresentation som produceras av PowerShells formateringssystem. Så du kan behöva skicka objekten till Out-String först. Mer information finns i Exempel 10.

Om du vill använda Select-Stringskriver du den text som du vill hitta som värde för parametern Pattern . Om du vill ange vilken text som ska sökas igenom använder du följande villkor:

  • Skriv texten i en citerad sträng och skicka den sedan till Select-String.
  • Lagra en textsträng i en variabel och ange sedan variabeln som värdet för parametern InputObject .
  • Om texten lagras i filer använder du parametern Sökväg för att ange sökvägen till filerna.

Som standard Select-String tolkar värdet för parametern Pattern som ett reguljärt uttryck. Mer information finns i about_Regular_Expressions. Du kan använda parametern SimpleMatch för att åsidosätta matchningen av reguljära uttryck. Parametern SimpleMatch hittar instanser av värdet för parametern Pattern i indata.

Standardutdata Select-String för är ett MatchInfo-objekt , som innehåller detaljerad information om matchningarna. Informationen i objektet är användbar när du söker efter text i filer, eftersom MatchInfo-objekt har egenskaper som Filnamn och Rad. När indata inte kommer från filen är värdet för dessa parametrar InputStream.

Om du inte behöver informationen i MatchInfo-objektet använder du parametern Tyst . Parametern Tyst returnerar ett booleskt värde (sant eller falskt) för att ange om den hittade en matchning i stället för ett MatchInfo-objekt .

När du matchar fraser Select-String använder du den aktuella kulturen som har angetts för systemet. Använd cmdleten för Get-Culture att hitta den aktuella kulturen.

Om du vill hitta egenskaperna för ett MatchInfo-objekt skriver du följande kommando:

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