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 reguljär uttrycksmatchning för att söka efter textmönster i indatasträngar och filer. Du kan använda Select-String
som liknar grep
i Unix eller findstr.exe
i Windows.
Select-String
baseras på textrader. Som standard hittar Select-String
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
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
bör förvänta sig 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 kodningsformatet för filen. Om filen inte har någon strukturlista förutsätter den att kodningen är UTF8.
Exempel
Exempel 1: Hitta en skiftlägeskänslig matchning
I det här exemplet matchas skiftlägeskänsligt med 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 i pipelinen till cmdleten Select-String
.
Select-String
använder parametern Pattern för att ange HELLO. Parametern CaseSensitive anger att ärendet 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 används Get-Alias
och Get-Command
med cmdleten Out-File
för att skapa två textfiler i den aktuella katalogen, Alias.txt och Command.txt.
Select-String
använder parametern Path med jokertecknet asterisk (*
) för att söka i alla filer i den aktuella katalogen med filnamnstillägget .txt
. Parametern Pattern anger texten 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 ett frågetecken (?
) ska matchas i varje fil. Ett omvänt snedstreck (\
) används som ett 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. Nyckelordet function
använder namnet Search-Help
. Tryck på Retur för att börja lägga till instruktioner i funktionen. Från >>
-kommandotolken lägger du till varje instruktion och trycker på Retur som du ser i exemplet. När den avslutande hakparentesen har lagts till returneras 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: Sök efter 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 parametern LogName 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 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 anger strängen Failed 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 i pipelinen för att 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.
Not
Beroende på dina behörigheter kan du se Åtkomst nekad 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 i pipelinen till Out-File
för att skapa Command.txt-filen i den aktuella katalogen.
Select-String
använder parametern Path för att ange Command.txt-filen. Parametern Pattern anger Hämta och Ange som sökmönster. Parametern NotMatch exkluderar Hämta och Ange 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 linjerna 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 i pipelinen till Out-File
för att skapa Command.txt-filen i den aktuella katalogen.
Select-String
använder parametern Path för att ange Command.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 vinkelparentesen (>
). Parametern Context matar ut de två raderna innan den första mönstermatchningen och tre rader efter den senaste 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 hittar Select-String
bara den första förekomsten av ett mönster i en textrad. I det här exemplet används objektegenskaper som finns 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. De Get-ChildItem
objekten lagras i variabeln $A
. Variabeln $A
skickas ned 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 $A
variabelinnehåll. 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 cmdletar för Get-ChildItem
och Select-String
, 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 "Out-String"
Det ToString()
resultatet av det pipade objektet är inte samma omfattande strängrepresentation som produceras av PowerShells formateringssystem. Därför kan du behöva skicka ut objekten till Out-String
först.
Rördragning till Out-String
konverterar formaterade utdata till ett enda flerradssträngsobjekt. Det innebär att när Select-String
hittar en matchning 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 till Out-String -Stream
konverterar formaterade utdata till flera enradssträngsobjekt. Det innebär att när Select-String
hittar en matchning matar den bara ut den matchande raden.
Parametrar
-AllMatches
Anger att cmdleten söker efter mer än en matchning i varje textrad. Utan den här parametern hittar Select-String
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 egenskapen Matchar innehåller alla matchningar.
Not
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 att undvika reguljära uttryck finns i about_Regular_Expressions.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-CaseSensitive
Anger att cmdlet-matchningarna är skiftlägeskänsliga. Matchningar är som standard inte skiftlägeskänsliga.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 avgör det talet antalet rader som samlats in 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 standardvisningsfönstret indikeras rader med en matchning med höger vinkelparentes (>
) (ASCII 62) i den första kolumnen på skärmen. 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 egenskapen Context för objektet.
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 Line för objektet MatchInfo, inte texten i kontextraderna. Därför är parametern Context inte giltig för det mottagande kommandot Select-String
.
När kontexten innehåller en matchning innehåller MatchInfo--objektet för varje matchning alla kontextrader, men de överlappande raderna visas bara en gång på skärmen.
Typ: | Int32[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 det aktuella PowerShell-körningsutrymmet (session).
Om du vill hämta en lista över alla kulturer som stöds använder du kommandot Get-Culture -ListAvailable
.
Dessutom accepterar den här parametern följande argument:
- CurrentCulture, som är standard;
- Ordningstal, det är icke-språklig binär jämförelse;
- Invariant, det är kulturoberoende jämförelse.
Med Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
kommando får du den snabbaste binära jämförelsen.
Parametern Culture använder tabbavslut 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 Culture introducerades i PowerShell 7.
Typ: | String |
Position: | Named |
Standardvärde: | Culture of the current PowerShell session |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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). -
ansi
: Använder kodningen för för den aktuella kulturens ANSI-kodsida. Det här alternativet lades till i PowerShell 7.4. -
bigendianunicode
: Kodar i UTF-16-format med hjälp av storslutsbyteordningen. -
bigendianutf32
: Kodar i UTF-32-format med hjälp av storslutsbyteordningen. -
oem
: Använder standardkodning för MS-DOS- och konsolprogram. -
unicode
: Kodar i UTF-16-format med hjälp av lite endiansk byteordning. -
utf7
: Kodar i UTF-7-format. -
utf8
: Kodar i UTF-8-format. -
utf8BOM
: Kodar i UTF-8-format med Byte Order Mark (BOM) -
utf8NoBOM
: Kodar i UTF-8-format utan Byte Order Mark (BOM) -
utf32
: Kodar i UTF-32-format.
Från och med PowerShell 6.2 tillåter parametern Kodning även numeriska ID:n 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.
Från och med PowerShell 7.4 kan du använda värdet Ansi
för parametern Kodning för att skicka det numeriska ID:t för den aktuella kulturens ANSI-kodsida utan att behöva ange det manuellt.
Not
UTF-7* rekommenderas inte längre att användas. Från och med PowerShell 7.1 skrivs en varning om du anger utf7
för parametern Kodning.
Typ: | Encoding |
Godkända värden: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Standardvärde: | UTF8NoBOM |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Exclude
Exkludera 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.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | True |
-InputObject
Anger den text som ska sökas igenom. Ange en variabel som innehåller texten eller skriv ett kommando eller uttryck som hämtar texten.
Att använda parametern InputObject är inte samma sak som att skicka strängar ned i pipelinen till Select-String
.
När du skickar fler än en sträng till cmdleten Select-String
söker den 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 söker Select-String
igenom innehållet i filen, inte ToString()
representation av objektet.
Typ: | PSObject |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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 över filer som har innehåll som matchar det reguljära uttrycket.
Som standard returnerar Select-String
ett MatchInfo- objekt för varje matchning som hittas.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-LiteralPath
Anger sökvägen till de filer som ska sökas igenom. 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 gör att PowerShell inte tolkar några tecken som escape-sekvenser. Mer information finns i about_Quoting_Rules.
Typ: | String[] |
Alias: | PSPath, LP |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-NoEmphasis
Som standard markerar Select-String
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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-NotMatch
Parametern NotMatch hittar text som inte matchar det angivna mönstret.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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
, *.doc
eller *.*
. Om du bara anger en katalog misslyckas kommandot.
Typ: | String[] |
Position: | 1 |
Standardvärde: | Local directory |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Quiet
Anger att cmdleten returnerar ett enkelt svar i stället för ett MatchInfo- objekt. Det returnerade värdet är $true
om mönstret hittas eller $null
om mönstret inte hittas.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Raw
Gör att cmdleten endast matar ut matchande strängar i stället för MatchInfo- objekt. Det här är resultatet av beteendet som liknar unix-kommandona grep eller Windows findstr.exe.
Den här parametern introducerades i PowerShell 7.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-SimpleMatch
Anger att cmdleten använder en enkel matchning snarare än en reguljär uttrycksmatchning. I en enkel matchning söker Select-String
indata efter texten i parametern Pattern. Det tolkar inte värdet för parametern Pattern som ett reguljärt uttryck.
När SimpleMatch- används är egenskapen Matchar för MatchInfo-objektet som returneras tom.
Not
När den här parametern används med parametern AllMatches ignoreras AllMatches-.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka alla objekt som har en ToString()
-metod till den här cmdleten.
Utdata
Som standard returnerar den här cmdleten ett MatchInfo- objekt för varje matchning som hittas.
När du använder parametern Quiet returnerar den här cmdleten ett booleskt värde som anger om mönstret hittades.
När du använder parametern Raw returnerar den här cmdleten en uppsättning String-objekt som matchar mönstret.
Kommentarer
PowerShell innehåller följande alias för Select-String
:
- Alla plattformar:
sls
Select-String
liknar grep
i Unix eller findstr.exe
i Windows.
Det sls
aliaset för cmdleten Select-String
introducerades i PowerShell 3.0.
Not
Enligt Godkända verb för PowerShell-kommandonär det officiella aliasprefixet för Select-*
cmdletar sc
, 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 söker
Select-String
igenom innehållet i filen, inteToString()
representation av objektet. - Det
ToString()
resultatet av det pipade objektet är inte samma omfattande strängrepresentation som produceras av PowerShells formateringssystem. Därför kan du behöva skicka ut objekten tillOut-String
först. Mer information finns i Exempel 10.
Om du vill använda Select-String
skriver du den text som du vill hitta som värdet för parametern Pattern. Om du vill ange den 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 Path för att ange sökvägen till filerna.
Som standard tolkar Select-String
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 för Select-String
ä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 objektet MatchInfo använder du parametern Quiet. Parametern Quiet 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 använder Select-String
den aktuella kultur som har angetts för systemet. Använd cmdleten Get-Culture
för 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 *