Megosztás a következőn keresztül:


Select-String

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

Syntax

File (Alapértelmezett)

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

A Select-String parancsmag normál kifejezésmegfeleltetés használatával keres szövegmintákat bemeneti sztringekben és fájlokban. A Unix vagy a Windows Select-Stringgrepfindstr.exe is használhatja.

Select-String szövegsorokon alapul. Alapértelmezés szerint Select-String megkeresi az első egyezést az egyes sorokban, és minden egyezésnél megjeleníti az egyezést tartalmazó sor fájlnevét, sorszámát és összes szövegét. A Select-String beállíthatja, hogy soronként több egyezést találjon, szöveget jelenítsen meg az egyezés előtt és után, vagy megjelenítsen egy logikai értéket (igaz vagy hamis), amely jelzi, hogy található-e egyezés.

Select-String megjelenítheti az összes szövegegyezé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.

Azt is megadhatja, hogy a Select-String egy adott karakterkódolásra számítson, például amikor Unicode-szövegfájlokat keres. Select-String a byte-order-mark (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 Select-String parancsmagnak küldött szöveg kis- és nagybetűkre érzékeny egyezését tartalmazza.

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

A rendszer a hello és HELLO szöveges sztringeket elküldi a folyamaton a Select-String parancsmagnak. Select-String a Minta paraméter használatával adja meg HELLO. A CaseSensitive paraméter azt határozza meg, hogy az esetnek csak a nagybetűs mintával kell egyeznie. SimpleMatch nem kötelező paraméter, és azt határozza meg, hogy a minta sztringje ne legyen normál kifejezésként értelmezve. Select-String HELLO jelenít meg a PowerShell-konzolon.

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-Alias és Get-Command a Out-File parancsmaggal két szövegfájlt hoz létre az aktuális könyvtárban, Alias.txt és Command.txt.

Select-String a Path paramétert használja a csillag (*) helyettesítő karakterrel az aktuális könyvtárban lévő összes fájlban a .txtfájlnévkiterjesztéssel. A Minta paraméter a Get- egyező 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éterrel egyező 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, Elérési út és Minta. A Path paraméter a PowerShell-címtárat meghatározó $PSHOME változót használja. Az elérési út fennmaradó része tartalmazza az alkönyvtárat en-US, és meghatározza 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éterrel egyező 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 kulcsszó a Search-Helpnevet használja. Nyomja le Enter billentyűkombinációt a függvényhez való hozzáadás megkezdéséhez. A >> parancssorból adja hozzá az egyes utasításokat, és nyomja le Írja be 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. $PSHOME a PowerShell telepítési könyvtára, amelynek alkönyvtára en-US, amely meghatározza a könyvtárban lévő összes *.txt fájlt.

A függvény Select-String parancsa a Elérési út és Minta paramétereket használja. A Elérési út paraméter a $PSHelp változót használja az 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 Search-Help. A függvény Select-String parancsa 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óért tekintse meg az *about_Automatic_Variables* témakört a éscímkék alatt.

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

A Get-WinEvent parancsmag a LogName paramétert használja az alkalmazásnapló megadásához. A MaxEvents paraméter lekéri az 50 legutóbbi eseményt a naplóból. A naplótartalmat a rendszer a $Eventsnevű változóban tárolja.

A $Events változót a rendszer elküldi a folyamatnak a Select-String parancsmagnak. Select-String az InputObject paramétert használja. A $_ változó az aktuális objektumot jelöli, Message pedig az esemény tulajdonsága. A Minta paraméter megadja a sikertelen sztringet, és egyezéseket keres a $_.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-ChildItem a Path paramétert használja C:\Windows\System32*.txtmegadásához. A Recurse paraméter tartalmazza az alkönyvtárakat. Az objektumokat le fogják küldeni a csővezetéken a Select-String-ba.

Select-String a 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.

Megjegyzés:

Az engedélyektől függően előfordulhat, hogy Hozzáférés megtagadva ü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-File, hogy létrehozza a Command.txt fájlt az aktuális könyvtárban. Select-String a Command.txt fájl megadásához a Path paramétert használja. A Minta paraméter keresési mintaként lekérése és beállítása. A NotMatch paraméter kizárja lekérése és beállítása az eredmények közül. Select-String megjeleníti a kimenetet a PowerShell-konzolon, amely nem tartalmazza Get vagy Set.

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-File, hogy létrehozza a Command.txt fájlt az aktuális könyvtárban. Select-String a Command.txt fájl megadásához a Path paramétert használja. A Minta paraméter keresési mintaként Get-Computer ad meg. A Környezeti paraméter két értéket használ, előtte és utána, és a minta egy szögletes zárójelet (>) haszná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 mintákat egy szövegsoron belül. Alapértelmezés szerint Select-String csak a minta első előfordulását találja meg egy szövegsorban. Ez a példa az Get-Member parancsmaggal található objektumtulajdonságokat 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. A Path paraméter a PowerShell-címtárat meghatározó $PSHOME változót használja. Az elérési út fennmaradó része tartalmazza az alkönyvtárat en-US, és meghatározza a könyvtárban lévő összes *.txt fájlt. A Get-ChildItem objektumokat a $A változó tárolja. A $A változót a rendszer elküldi a folyamatnak a Select-String parancsmagnak. Select-String a 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 minta első előfordulását PowerShell- minden sorban.

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

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

A $B.Matches.Length tulajdonság azért nő, mert minden sornál a minta minden előfordulását meg kell számolnia a PowerShell-.

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

A vezetékes objektum ToString() eredménye nem ugyanaz, mint a PowerShell formázási rendszere által létrehozott gazdag sztring-ábrázolás. Ezért előfordulhat, hogy először az objektumokat a Out-String kell becsúsznia.

A piping to Out-String a formázott kimenetet egyetlen többsoros sztringobjektummá alakítja. Ez azt jelenti, hogy ha Select-String talál egyezést, az a teljes többsoros sztringet adja ki.

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 to 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 nélkül Select-String 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ések tulajdonsága tartalmazza az összes egyezést.

Megjegyzés:

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

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 Select-Stringáltal létrehozott objektumok számát. Select-String minden egyezéshez létrehoz egy MatchInfo objektumot. A környezet sztringtömbként van tárolva az objektum Környezeti tulajdonságában.

Amikor egy Select-String parancs kimenetét egy másik Select-String parancsnak küldi le a folyamaton, a fogadó parancs csak a megfelelő sor szövegében keres. A megfeleltetett sor a MatchInfo objektum Sor tulajdonságának értéke, nem pedig a környezet soraiban lévő szöveg. Emiatt a Környezeti paraméter nem érvényes a fogadó Select-String parancsra.

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

Paramétertulajdonságok

Típus:

Int32[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Az összes támogatott kultúra listájának lekéréséhez használja Get-Culture -ListAvailable 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 Select-String -Culture Ordinal -CaseSensitive -SimpleMatch paranccsal a leggyorsabb bináris összehasonlítást kapja.

A Kulturális 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.Namecímű témakörben talál.

A Culture paraméter a PowerShell 7-ben lett bevezetve.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:Culture of the current PowerShell session
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Encoding

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

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

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • ansi: Az aktuális kultúra ANSI-kódlapjának kódolását használja. Ez a beállítás a PowerShell 7.4-ben lett hozzáadva.
  • bigendianunicode: Az UTF-16 formátumú kódolást a big-endian bájtsorrend alkalmazásával végzi.
  • bigendianutf32: UTF-32 formátumban kódol nagyvégű bájtsorrend használatával.
  • oem: Az alapértelmezett kódolást használja MS-DOS és konzolprogramokhoz.
  • unicode: Az UTF-16 formátumban kódol kis végű bájtsorrend használatával.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumban kódolódik bájt sorrendi jel (BOM) használatával
  • 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.

A PowerShell 7.4-től kezdve a Ansi paraméter értékével anélkül adhat meg numerikus azonosítót az aktuális kultúra ANSI-kódlapjához, hogy manuálisan kellene megadnia.

Megjegyzés:

UTF-7* már nem ajánlott. PowerShell 7.1-től kezdve figyelmeztetés jelenik meg, ha utf7-et ad meg a kódolás paraméterhez.

Paramétertulajdonságok

Típus:Encoding
Alapértelmezett érték:UTF8NoBOM
Elfogadott értékek:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Exclude

Zárja ki a megadott elemeket. Ennek a paraméternek az értéke a 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Include

Tartalmazza a megadott elemeket. Ennek a paraméternek az értéke a 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-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 a sztringek küldése a folyamaton Select-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 a InputObject paraméterrel küldi el a sztringek gyűjteményét, Select-String a gyűjteményt egyetlen kombinált sztringként kezeli. Select-String a sztringeket egységként adja vissza, ha bármilyen sztringben megtalálja a keresett szöveget.

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

Paramétertulajdonságok

Típus:PSObject
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

Object
Position:Named
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
ObjectRaw
Position:Named
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 a Select-String egy MatchInfo objektumot ad vissza minden megtalált egyezéshez.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-LiteralPath

Megadja a keresendő fájlok elérési útját. A LiteralPath paraméter értéke pontosan a beírt módon lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési útvonal escape karaktereket tartalmaz, tedd azt egyes idézőjelek közé. Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként. További információk az about_Quoting_Rules oldalon találhatók: .

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PSPath, LP

Paraméterkészletek

LiteralFileRaw
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False
LiteralFile
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-NoEmphasis

Alapértelmezés szerint Select-String kiemeli azt a sztringet, amely megfelel a Minta paraméterrel keresett mintának. 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.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-NotMatch

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

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:Local directory
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

File
Position:1
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False
FileRaw
Position:1
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-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_Expressionscímű témakörben olvashat.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Quiet

Azt jelzi, hogy a parancsmag egy egyszerű választ ad vissza MatchInfo objektum helyett. A visszaadott érték $true, ha a minta megtalálható, vagy $null, ha a minta nem található.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

File
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
Object
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
LiteralFile
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Raw

A parancsmag csak a megfelelő sztringeket adja ki, nem pedig MatchInfo objektumokat. Ez a viselkedés leginkább a Unix grep vagy a Windows findstr.exe parancsokhoz hasonlít.

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

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ObjectRaw
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
FileRaw
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
LiteralFileRaw
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 megkeresi a Minta paraméter szövegét. Nem értelmezi a Minta paraméter értékét normál kifejezési utasításként.

Emellett SimpleMatch használatakor a visszaadott MatchInfo objektum Egyezések tulajdonsága üres.

Megjegyzés:

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

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

PSObject

A parancsmaghoz bármely olyan objektumot csövezhet, amely rendelkezik ToString() metódussal.

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 Nyers paraméter használatakor ez a parancsmag sztring objektumkészletet ad vissza, amelyek megfelelnek a mintának.

Jegyzetek

A PowerShell a következő aliasokat tartalmazza Select-String:

  • Minden platform:
    • sls

Select-String hasonló a Unix vagy a Windows grepfindstr.exe.

A sls parancsmag Select-String aliasa a PowerShell 3.0-ban lett bevezetve.

Megjegyzés:

A PowerShell-parancsokhoz jóváhagyottszerint az Select-* parancsmagok hivatalos aliaselőtagja sc, nem pedig sl. Ezért a Select-String megfelelő aliasának scskell lennie , nem pedig sls. Ez kivétel a szabály alól.

Objektumok Select-Stringvaló pipálásakor:

  • FileInfo objektumokat egy fájl elérési útjaként kezeli a rendszer. Ha meg vannak adva a fájl elérési útjai, Select-String a fájl tartalmát keresi, nem az objektum ToString() ábrázolását.
  • A vezetékes objektum ToString() eredménye nem ugyanaz, mint a PowerShell formázási rendszere által létrehozott gazdag sztring-ábrázolás. Ezért előfordulhat, hogy először az objektumokat a Out-String kell becsúsznia. További információ: 10. példa.

A Select-Stringhasználatához í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 a 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, a 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.

A Select-String alapértelmezett kimenete egy MatchInfo objektum, amely részletes információkat tartalmaz a találatokról. Az objektum információi akkor hasznosak, ha fájlban keres szöveget, mert MatchInfo objektumok olyan tulajdonságokkal rendelkeznek, mint Fájlnév és Sor. Ha a bemenet nem a fájlból származik, ezeknek a paramétereknek az értéke InputStream.

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

A kifejezések egyeztetésekor Select-String a rendszerhez 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 *