Select-String

Sztringekben és fájlokban lévő szöveget keres.

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

A Select-String parancsmag normál kifejezésmegfeleltetés használatával keres szövegmintákat a bemeneti sztringekben és fájlokban. A UNIX-hoz vagy findstr.exe a Windowshoz grep hasonlóan használhatóSelect-String.

Select-String szövegsorokon alapul. Alapértelmezés szerint Select-String minden sorban megtalálja az első egyezést, és minden egyezésnél megjeleníti az egyezést tartalmazó sor fájlnevét, sorszámát és szövegét. Soronként több egyezést is megkereshet, szöveget jeleníthet meg az egyezés előtt és után, vagy megjeleníthet Select-String egy logikai értéket (Igaz vagy Hamis), amely jelzi, hogy található-e egyezés.

Select-String megjelenítheti az összes szöveges egyezést, vagy leállíthatja az első egyezést az egyes bemeneti fájlokban. Select-String az összes olyan szöveg megjelenítésére használható, amely nem felel meg a megadott mintának.

Megadhatja azt is, hogy Select-String egy adott karakterkódolásra számítson, például amikor Unicode-szövegfájlokat keres. Select-String A bájtsorrendjel (BOM) használatával észleli a fájl kódolási formátumát. Ha a fájl nem rendelkezik BOM-lal, feltételezi, hogy a kódolás UTF8.

Példák

1. példa: Kis- és nagybetűk megkülönböztetése

Ez a példa a folyamaton keresztül a parancsmagnak küldött szöveg kis- és nagybetűkre vonatkozó egyezését Select-String tartalmazza.

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

A rendszer a Hello és a HELLO szöveges sztringeket elküldi a folyamatnak a Select-String parancsmagnak. Select-Stringa Minta paraméter használatával adja meg a HELLO paramétert. A CaseSensitive paraméter azt határozza meg, hogy az esetnek csak a nagybetűs mintával kell egyeznie. A SimpleMatch egy opcionális paraméter, amely azt határozza meg, hogy a minta sztringje nem normál kifejezésként van értelmezve. Select-StringA HELLO a PowerShell-konzolon jelenik meg.

2. példa: Találatok keresése szövegfájlokban

Ez a parancs az aktuális könyvtárban található .txt fájlnévkiterjesztéssel rendelkező összes fájlt megkeresi. A kimenet megjeleníti a megadott sztringet tartalmazó fájlok sorait.

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

Ebben a példában Get-AliasGet-Command a Out-File parancsmaggal két szövegfájlt hozunk létre az aktuális könyvtárban, Alias.txt és Command.txt.

Select-StringA Path paramétert a csillag (*) helyettesítő karakterrel használja az aktuális könyvtár összes fájljának kereséséhez a fájlnévkiterjesztéssel.txt. A Minta paraméter a Get-nek megfelelő szöveget adja meg. Select-String megjeleníti a kimenetet a PowerShell-konzolon. A fájlnév és a sorszám megelőzi a Minta paraméternek megfelelő tartalomsorokat.

3. példa: Mintaegyezés keresése

Ebben a példában a rendszer több fájlt keres a megadott minta egyezéseinek kereséséhez. A minta egy reguláris kifejezéskvantálót használ. További információ: 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

A Select-String parancsmag két paramétert használ, az Elérési utat és a Mintát. Az Elérési út paraméter a PowerShell-könyvtárat meghatározó változót $PSHOME használja. Az elérési út fennmaradó része tartalmazza az en-US alkönyvtárat, és megadja a könyvtárban lévő összes *.txt fájlt. A Minta paraméter az egyes fájlokban szereplő kérdőjelnek (?) felel meg. A fordított perjel (\) feloldó karakterként használatos, és azért szükséges, mert a kérdőjel (?) egy reguláris kifejezéskvantáló. Select-String megjeleníti a kimenetet a PowerShell-konzolon. A fájlnév és a sorszám megelőzi a Minta paraméternek megfelelő tartalomsorokat.

4. példa: Select-String használata függvényben

Ez a példa létrehoz egy függvényt, amely mintát keres a PowerShell súgófájljaiban. Ebben a példában a függvény csak a PowerShell-munkamenetben létezik. A PowerShell-munkamenet bezárásakor a függvény törlődik. További információ: 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

A függvény a PowerShell parancssorában jön létre. A Function parancs a nevet Search-Helphasználja. Nyomja le az Enter billentyűt a függvényhez való utasítások hozzáadásának megkezdéséhez. A parancssorból adja hozzá az >> egyes utasításokat, és nyomja le az Enter billentyűt a példában látható módon. A záró zárójel hozzáadása után a rendszer visszalép egy PowerShell-parancssorba.

A függvény két parancsot tartalmaz. A $PSHelp változó tárolja a PowerShell súgófájljainak elérési útját. $PSHOMEa PowerShell telepítési könyvtára, amelynek az en-US alkönyvtára adja meg a könyvtárban lévő egyes *.txt fájlokat.

A Select-String függvény parancsa az Elérési út és a Minta paramétereket használja. Az Elérési út paraméter a változót használja az $PSHelp elérési út lekéréséhez. A Minta paraméter keresési feltételként a About_ sztringet használja.

A függvény futtatásához írja be a következőt Search-Help: . A függvény parancsa Select-String megjeleníti a kimenetet a PowerShell-konzolon.

5. példa: Sztring keresése Windows-eseménynaplóban

Ez a példa egy sztringet keres egy Windows-eseménynaplóban. A változó $_ a folyamat aktuális objektumát jelöli. További információ: about_Automatic_Variables.

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

A Get-WinEvent parancsmag a LogName paraméter használatával adja meg az alkalmazásnaplót. A MaxEvents paraméter lekéri az 50 legutóbbi eseményt a naplóból. A naplótartalmat a rendszer a névvel ellátott $Eventsváltozóban tárolja.

A $Events rendszer elküldi a változót a folyamatnak a Select-String parancsmagnak. Select-StringAz InputObject paramétert használja. A $_ változó az aktuális objektumot jelöli, és message az esemény tulajdonsága. A Minta paraméter a sztringet nem sikerült megadni , és egyezéseket keres a következőben $_.message: . Select-String megjeleníti a kimenetet a PowerShell-konzolon.

6. példa: Sztring keresése alkönyvtárakban

Ez a példa egy könyvtárban és annak összes alkönyvtárában keres egy adott szöveges sztringet.

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

Get-ChildItemA Path paraméter használatával adja meg a C:\Windows\System32*.txt. A Recurse paraméter tartalmazza az alkönyvtárakat. A rendszer elküldi az objektumokat a folyamatnak Select-String.

Select-StringA Minta paramétert használja, és megadja a Microsoft sztringet. A CaseSensitive paraméter a sztring pontos esetének felel meg. Select-String megjeleníti a kimenetet a PowerShell-konzolon.

Feljegyzés

Az engedélyektől függően előfordulhat , hogy az Access megtagadta az üzeneteket a kimenetben.

7. példa: Nem egyező sztringek keresése

Ez a példa bemutatja, hogyan zárhat ki olyan adatsorokat, amelyek nem egyeznek a mintával.

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

A Get-Command parancsmag objektumokat küld a folyamaton keresztül a Out-FileCommand.txt fájl létrehozásához az aktuális könyvtárban. Select-StringA Path paraméter használatával adja meg a Command.txt fájlt. A Minta paraméter keresési mintaként adja meg a Beolvasás és a Beállítás értéket. A NotMatch paraméter kizárja a Beolvasás és a Beállítás értéket az eredmények közül. Select-String megjeleníti a Kimenetet a PowerShell-konzolon, amely nem tartalmazza a Beolvasás vagy a Beállítás lehetőséget.

8. példa: Egyezés előtti és utáni sorok keresése

Ez a példa bemutatja, hogyan szerezheti be a sorokat a megfeleltethető minta előtt és után.

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

A Get-Command parancsmag objektumokat küld a folyamaton keresztül a Out-FileCommand.txt fájl létrehozásához az aktuális könyvtárban. Select-StringA Path paraméter használatával adja meg a Command.txt fájlt. A Minta paraméter keresési mintaként van megadva Get-Computer . A Környezeti paraméter két értéket használ, előtte és utána, a minta pedig egy szögletes zárójelet (>szögletes zárójelet) jelöl a kimenetben. A Környezeti paraméter az első mintaegyezés előtti két sort, az utolsó mintaegyezés után pedig három sort ad ki.

9. példa: Az összes minta egyezésének megkeresése

Ez a példa bemutatja, hogy az AllMatches paraméter hogyan találja meg az egyes mintaegyezéseket egy szövegsorban. Alapértelmezés szerint Select-String csak a minta első előfordulását találja meg egy szövegsorban. Ez a példa a parancsmaggal együtt található objektumtulajdonságokat Get-Member használja.

$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

A Get-ChildItem parancsmag a Path paramétert használja. Az Elérési út paraméter a PowerShell-könyvtárat meghatározó változót $PSHOME használja. Az elérési út fennmaradó része tartalmazza az en-US alkönyvtárat, és megadja a könyvtárban lévő összes *.txt fájlt. Az Get-ChildItem objektumok a változóban $A vannak tárolva. A $A rendszer elküldi a változót a folyamatnak a Select-String parancsmagnak. Select-StringA Minta paraméterrel keres minden fájlt a PowerShell sztringben.

A PowerShell parancssorában megjelenik a $A változó tartalma. Van egy sor, amely a PowerShell sztring két előfordulását tartalmazza.

A $A.Matches tulajdonság felsorolja a PowerShell-minta első előfordulását minden sorban.

A $A.Matches.Length tulajdonság minden sorban megszámolja a PowerShell-mintaelső előfordulását.

A $B változó ugyanazt Get-ChildItem és Select-String parancsmagokat használja, de hozzáadja az AllMatches paramétert . Az AllMatches minden sorban megkeresi a PowerShell-minta minden előfordulását. A benne tárolt objektumok és $B a $A változók azonosak.

A $B.Matches.Length tulajdonság azért nő, mert minden sorban a PowerShell-minta minden előfordulását megszámolja a rendszer.

10. példa – Folyamatobjektumok konvertálása sztringekké "Out-String" használatával

A ToString() vezetékes objektum eredménye nem ugyanaz a gazdag sztringábrázolás, amelyet a PowerShell formázási rendszere állít elő. Ezért előfordulhat, hogy először be kell csöveznie Out-String az objektumokat.

A piping Out-String a formázott kimenetet egyetlen többsoros sztringobjektummá alakítja. Ez azt jelenti, hogy egyezés keresésekor Select-String a teljes többsoros sztring jelenik meg.

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

A piping Out-String -Stream a formázott kimenetet több egysoros sztringobjektummá alakítja. Ez azt jelenti, hogy ha Select-String talál egyezést, az csak az egyező sort adja ki.

Paraméterek

-AllMatches

Azt jelzi, hogy a parancsmag egynél több egyezést keres az egyes szövegsorokban. E paraméter Select-String nélkül csak az első egyezést találja meg az egyes szövegsorokban.

Ha Select-String több egyezést talál egy szövegsorban, akkor is csak egy MatchInfo objektumot bocsát ki a sorhoz, de az objektum Egyezés tulajdonsága az összes egyezést tartalmazza.

Feljegyzés

Ezt a paramétert a rendszer figyelmen kívül hagyja a SimpleMatch paraméterrel együtt használva. Ha az összes egyezést és a keresett mintát normál kifejezéskarakterekből szeretné visszaadni, a SimpleMatch használata helyett ezeket a karaktereket kell feloldania. A reguláris kifejezésekről további információt a about_Regular_Expressions talál.

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

-CaseSensitive

Azt jelzi, hogy a parancsmag-egyezések megkülönböztetik a kis- és nagybetűket. Alapértelmezés szerint az egyezések nem érzékenyek a kis- és nagybetűkre.

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

-Context

A mintázatnak megfelelő vonal előtt és után megadott számú sort rögzíti.

Ha a paraméter értékeként egy számot ad meg, az a szám határozza meg az egyezés előtt és után rögzített sorok számát. Ha két számot ad meg értékként, az első szám határozza meg az egyezés előtti sorok számát, a második szám pedig az egyezés utáni sorok számát. Például: -Context 2,3.

Az alapértelmezett megjelenítésben az egyező vonalakat a kijelző első oszlopában egy szögletes zárójel (>ASCII 62) jelöli. A jelöletlen vonalak a környezet.

A Környezeti paraméter nem módosítja a létrehozott Select-Stringobjektumok számát. Select-String Minden egyezéshez egy MatchInfo objektumot hoz létre. A környezet sztringek tömbjeként van tárolva az objektum Context tulajdonságában.

Amikor egy Select-String parancs kimenete egy másik Select-String parancsnak küldi le a folyamatot, a fogadó parancs csak a megfeleltetett sorban lévő szöveget keresi. A egyeztetett sor a MatchInfo objektum Sor tulajdonságának értéke, nem pedig a környezeti sorokban lévő szöveg. Ennek eredményeképpen a Context paraméter nem érvényes a fogadó Select-String parancson.

Ha a környezet tartalmaz egyezést, az egyes egyezések MatchInfo objektuma tartalmazza az összes környezeti sort, de az egymást átfedő vonalak csak egyszer jelennek meg a megjelenítésben.

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

-Culture

A megadott mintának megfelelő kulturális nevet ad meg. A Culture paramétert a SimpleMatch paraméterrel kell használni. Az alapértelmezett viselkedés az aktuális PowerShell-futtatótér (munkamenet) kultúráját használja.

A támogatott kultúrák listájának lekéréséhez használja Get-Culture -ListAvailable a parancsot.

Emellett ez a paraméter a következő argumentumokat fogadja el:

  • CurrentCulture, ez az alapértelmezett;
  • Ordinal, azaz nem nyelvi bináris összehasonlítás;
  • Invariáns, ez a kultúrafüggetlen összehasonlítás.

A parancs segítségével Select-String -Culture Ordinal -CaseSensitive -SimpleMatch a leggyorsabb bináris összehasonlítást kapja.

A Kultúra paraméter lapkiegészítéssel görgeti végig az elérhető kultúrákat meghatározó argumentumok listáját. Az összes elérhető argumentum listázásához használja a következő parancsot:

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

A .NET CultureInfo.Name tulajdonságról további információt a CultureInfo.Name című témakörben talál.

A Kulturális paraméter a PowerShell 7-ben lett bevezetve.

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

-Encoding

Megadja a célfájl kódolási típusát. Az alapértelmezett érték utf8NoBOM.

A paraméter elfogadható értékei a következők:

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • bigendianunicode: UTF-16 formátumban kódolja a big-endian bájtsorrendet.
  • bigendianutf32: UTF-32 formátumban kódolja a big-endian bájtsorrendet.
  • oem: Az MS-DOS és a konzolprogramok alapértelmezett kódolását használja.
  • unicode: UTF-16 formátumban kódolja a kis végű bájtsorrendet.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumban kódol byte order mark (BOM)
  • utf8NoBOM: UTF-8 formátumban kódol byte order mark (BOM) nélkül
  • utf32: UTF-32 formátumban kódol.

A PowerShell 6.2-től kezdődően a Kódolás paraméter lehetővé teszi a regisztrált kódlapok (például -Encoding 1251) numerikus azonosítóit vagy a regisztrált kódlapok sztringneveit (például -Encoding "windows-1251"). További információt a Encoding.CodePage .NET-dokumentációjában talál.

Feljegyzés

Az UTF-7* már nem ajánlott. A PowerShell 7.1-ről figyelmeztetést ír, ha utf7 megadja a Kódolás paramétert.

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

Zárja ki a megadott elemeket. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például *.txt. Helyettesítő karakterek használata engedélyezett.

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

-Include

Tartalmazza a megadott elemeket. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például *.txt. Helyettesítő karakterek használata engedélyezett.

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

-InputObject

Megadja a keresendő szöveget. Írjon be egy szöveget tartalmazó változót, vagy írjon be egy parancsot vagy kifejezést, amely beolvasja a szöveget.

Az InputObject paraméter használata nem ugyanaz, mint amikor sztringeket küld a folyamatnakSelect-String.

Ha egynél több sztringet csövez a Select-String parancsmagba, az minden sztringben megkeresi a megadott szöveget, és visszaadja a keresési szöveget tartalmazó sztringeket.

Ha az InputObject paraméterrel sztringek gyűjteményét küldi el, Select-String a gyűjteményt egyetlen kombinált sztringként kezeli. Select-String A sztringeket egységként adja vissza, ha bármely sztringben megtalálja a keresett szöveget.

A FileInfo-objektumokat a rendszer fájl elérési útjaként kezeli. Ha a fájl elérési útjai meg vannak adva, Select-String a fájl tartalmában keres, nem pedig az ToString() objektum ábrázolásában.

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

-List

Minden bemeneti fájlból csak az egyező szöveg első példánya lesz visszaadva. Ez a leghatékonyabb módja annak, hogy lekérje azoknak a fájloknak a listáját, amelyek tartalma megegyezik a normál kifejezéssel.

Alapértelmezés szerint Select-String egy MatchInfo objektumot ad vissza minden megtalált egyezéshez.

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

-LiteralPath

Megadja a keresendő fájlok elérési útját. A LiteralPath paraméter értékét pontosan a beírt módon használja a rendszer. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként. További információ: about_Quoting_Rules.

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

-NoEmphasis

Alapértelmezés szerint kiemeli azt a sztringet, Select-String amely megegyezik a Minta paraméterrel keresett mintával. A NoEmphasis paraméter letiltja a kiemelést.

A hangsúly negatív színeket használ a PowerShell-háttér és a szövegszínek alapján. Ha például a PowerShell-színek fekete háttérrel és fehér szöveggel vannak elkönyvelve. A hangsúly fehér háttér, fekete szöveggel.

Ez a paraméter a PowerShell 7-ben lett bevezetve.

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

-NotMatch

A NotMatch paraméter olyan szöveget keres, amely nem felel meg a megadott mintának.

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

-Path

Megadja a keresendő fájlok elérési útját. Helyettesítő karakterek használata engedélyezett. Az alapértelmezett hely a helyi könyvtár.

Adja meg a könyvtárban lévő fájlokat, például log1.txt: , *.docvagy *.*. Ha csak egy könyvtárat ad meg, a parancs meghiúsul.

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

-Pattern

Meghatározza az egyes sorokban keresendő szöveget. A mintaértéket a rendszer normál kifejezésként kezeli.

A reguláris kifejezésekről a about_Regular_Expressions olvashat.

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

-Quiet

Azt jelzi, hogy a parancsmag egy MatchInfo objektum helyett logikai értéket (Igaz vagy Hamis) ad vissza. Az érték igaz, ha a minta megtalálható; ellenkező esetben az érték Hamis.

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

-Raw

A parancsmag a MatchInfo-objektumok helyett csak az egyező sztringeket adja ki. Ez a Unix grep vagy a Windows findstr.exe parancsokhoz leginkább hasonló viselkedés eredménye.

Ez a paraméter a PowerShell 7-ben lett bevezetve.

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

-SimpleMatch

Azt jelzi, hogy a parancsmag egyszerű egyezést használ a normál kifejezésegyezés helyett. Egy egyszerű egyezésben Select-String keressen rá a szövegre a Minta paraméterben. Nem értelmezi a Minta paraméter értékét normál kifejezési utasításként.

A SimpleMatch használata esetén a visszaadott MatchInfo objektum Egyezés tulajdonsága üres.

Feljegyzés

Ha ezt a paramétert az AllMatches paraméterrel használja, a rendszer figyelmen kívül hagyja az AllMatches paramétert .

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

Bevitelek

PSObject

A parancsmaghoz bármilyen metódust ToString() tartalmazó objektumot csövezhet.

Kimenetek

MatchInfo

Ez a parancsmag alapértelmezés szerint egy MatchInfo objektumot ad vissza minden talált egyezéshez.

Boolean

A Quiet paraméter használatakor ez a parancsmag egy logikai értéket ad vissza, amely jelzi, hogy a minta megtalálható-e.

String

A Raw paraméter használatakor ez a parancsmag a mintának megfelelő sztringobjektumokat ad vissza.

Jegyzetek

A PowerShell a következő aliasokat Select-Stringtartalmazza:

  • Minden platform:
    • sls

Select-Stringgrep hasonló a UNIX vagy findstr.exe a Windows rendszerhez.

A sls parancsmag aliasát a Select-String PowerShell 3.0-ban vezettük be.

Feljegyzés

A PowerShell-parancsok jóváhagyott parancsai szerint a parancsmagok hivatalos aliaselőtagja Select-*scnem sl. Ezért a megfelelő aliasnak Select-String nem sls.scs Ez kivétel a szabály alól.

Objektumok becsatolásakor a következőre Select-String:

  • A FileInfo-objektumokat a rendszer fájl elérési útjaként kezeli. Ha a fájl elérési útjai meg vannak adva, Select-String a fájl tartalmában keres, nem pedig az ToString() objektum ábrázolásában.
  • A ToString() vezetékes objektum eredménye nem ugyanaz a gazdag sztringábrázolás, amelyet a PowerShell formázási rendszere állít elő. Ezért előfordulhat, hogy először be kell csöveznie Out-String az objektumokat. További információ: 10. példa.

A használathoz Select-Stringírja be a keresett szöveget a Minta paraméter értékeként. A keresendő szöveg megadásához használja a következő feltételeket:

  • Írja be a szöveget egy idézett sztringbe, majd írja be a következőbe Select-String: .
  • Tároljon egy szöveges sztringet egy változóban, majd adja meg a változót az InputObject paraméter értékeként.
  • Ha a szöveg fájlokban van tárolva, az Elérési út paraméter használatával adja meg a fájlok elérési útját.

Alapértelmezés szerint Select-String a Minta paraméter értékét normál kifejezésként értelmezi. További információ: about_Regular_Expressions. A SimpleMatch paraméter használatával felülbírálhatja a reguláris kifejezésegyezést. A SimpleMatch paraméter megkeresi a Minta paraméter értékének példányait a bemenetben.

Az alapértelmezett kimenet Select-String egy MatchInfo objektum, amely részletes információkat tartalmaz az egyezésekről. Az objektum információi akkor hasznosak, ha szövegeket keres a fájlokban, mivel a MatchInfo objektumok olyan tulajdonságokkal rendelkeznek, mint a Fájlnév és a Sor. Ha a bemenet nem a fájlból származik, ezeknek a paramétereknek az értéke Az InputStream.

Ha nincs szüksége a MatchInfo objektum információira, használja a Quiet paramétert. A Quiet paraméter egy logikai értéket (Igaz vagy Hamis) ad vissza, amely jelzi, hogy egyezést talált-e a MatchInfo objektum helyett.

A kifejezések egyeztetésekor Select-String a rendszer által beállított aktuális kultúrát használja. Az aktuális kultúra megkereséséhez használja a Get-Culture parancsmagot.

Egy MatchInfo objektum tulajdonságainak megkereséséhez írja be a következő parancsot:

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