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-String
a 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-String
A 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-Alias
Get-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-String
A 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-Help
haszná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. $PSHOME
a 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 $Events
változóban tárolja.
A $Events
rendszer elküldi a változót a folyamatnak a Select-String
parancsmagnak. Select-String
Az 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 Sikertelen sztringet adja meg, és egyezéseket keres a fájlban$_.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é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-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.
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-File
Command.txt fájl létrehozásához az aktuális könyvtárban. Select-String
A 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-File
Command.txt fájl létrehozásához az aktuális könyvtárban. Select-String
A 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-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 PowerShell-minta első előfordulását minden sorban.
A $A.Matches.Length
tulajdonság minden sorban megszámolja a PowerShell-minta első 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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-String
objektumok 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.
Típus: | Int32[] |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | Culture of the current PowerShell session |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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ülutf32
: 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.
Típus: | Encoding |
Elfogadott értékek: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Alapértelmezett érték: | UTF8NoBOM |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String[] |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String[] |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | PSObject |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String[] |
Aliasok: | PSPath, LP |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-NotMatch
A NotMatch paraméter olyan szöveget keres, amely nem felel meg a megadott mintának.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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
: , *.doc
vagy *.*
. Ha csak egy könyvtárat ad meg, a parancs meghiúsul.
Típus: | String[] |
Position: | 1 |
Alapértelmezett érték: | Local directory |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String[] |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Quiet
Azt jelzi, hogy a parancsmag egy MatchInfo objektum helyett egy egyszerű választ ad vissza. A visszaadott érték az, $true
ha a minta megtalálható, vagy $null
ha a minta nem található.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 .
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
A parancsmaghoz bármilyen metódust ToString()
tartalmazó objektumot csövezhet.
Kimenetek
Ez a parancsmag alapértelmezés szerint egy MatchInfo objektumot ad vissza minden talált egyezéshez.
A Quiet paraméter használatakor ez a parancsmag egy logikai értéket ad vissza, amely jelzi, hogy a minta megtalálható-e.
A Raw paraméter használatakor ez a parancsmag a mintának megfelelő sztringobjektumokat ad vissza.
Jegyzetek
A PowerShell a következő aliasokat Select-String
tartalmazza:
- Minden platform:
sls
Select-String
grep
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-*
sc
nem 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 azToString()
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öveznieOut-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 *