Select-String
Najde text v řetězcích a souborech.
Syntaxe
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
Rutina Select-String
používá porovnávání regulárních výrazů k hledání vzorů textu ve vstupních řetězcích a souborech. Můžete použít Select-String
podobně jako grep
v systémech UNIX nebo findstr.exe
Windows.
Select-String
je založená na řádcích textu. Ve výchozím nastavení Select-String
najde první shodu na každém řádku a pro každou shodu zobrazí název souboru, číslo řádku a veškerý text na řádku obsahujícím shodu. Můžete přímo Select-String
najít více shod na řádek, zobrazit text před a za shodou nebo zobrazit logickou hodnotu (Pravda nebo Nepravda), která označuje, zda byla nalezena shoda.
Select-String
může zobrazit všechny shody nebo zastavení textu po první shodě v každém vstupním souboru.
Select-String
lze použít k zobrazení veškerého textu, který neodpovídá zadanému vzoru.
Můžete také určit, že Select-String
by mělo očekávat určité kódování znaků, například při vyhledávání souborů s textem Unicode. Select-String
používá bajtů -order-mark (BOM) ke zjištění formátu kódování souboru. Pokud soubor neobsahuje boM, předpokládá se, že kódování je UTF8.
Příklady
Příklad 1: Vyhledání shody s rozlišováním velkých a malých písmen
V tomto příkladu se rozlišují malá a velká písmena textu odesílaného kanálu do rutiny Select-String
.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Textové řetězce Hello a HELLO se do rutiny odesílají do kanáluSelect-String
.
Select-String
používá parametr Pattern k zadání funkce HELLO. Parametr CaseSensitive určuje, že případ se musí shodovat pouze s velkými písmeny. SimpleMatch je volitelný parametr a určuje, že řetězec v modelu není interpretován jako regulární výraz.
Select-String
zobrazí HELLO v konzole PowerShellu.
Příklad 2: Hledání shod v textových souborech
Tento příkaz vyhledá všechny soubory s příponou .txt
názvu souboru v aktuálním adresáři. Výstup zobrazí řádky v těchto souborech, které obsahují zadaný řetězec.
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
V tomto příkladu Get-Alias
a Get-Command
používají se s rutinou Out-File
k vytvoření dvou textových souborů v aktuálním adresáři, Alias.txt a Command.txt.
Select-String
pomocí parametru Path se zástupným znakem hvězdička (*
) vyhledá všechny soubory v aktuálním adresáři s příponou .txt
názvu souboru . Parametr Pattern určuje text, který se má shodovat s get-. Select-String
zobrazí výstup v konzole PowerShellu. Název souboru a číslo řádku předchází každému řádku obsahu, který obsahuje shodu pro parametr Pattern .
Příklad 3: Vyhledání shody vzorů
V tomto příkladu se prohledá více souborů, aby se vyhledaly shody zadaného vzoru. Vzor používá kvantifikátor regulárního výrazu. Další informace najdete v tématu 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
Rutina Select-String
používá dva parametry: Path a Pattern. Parametr Path používá proměnnou $PSHOME
, která určuje adresář PowerShellu. Zbytek cesty zahrnuje podadresář en-US a určuje každý *.txt
soubor v adresáři. Parametr Pattern určuje shodu s otazníkem (?
) v každém souboru. Zpětné lomítko (\
) se používá jako řídicí znak a je nezbytné, protože otazník (?
) je kvantifikátor regulárního výrazu. Select-String
zobrazí výstup v konzole PowerShellu. Název souboru a číslo řádku předchází každému řádku obsahu, který obsahuje shodu pro parametr Pattern .
Příklad 4: Použití select-String ve funkci
Tento příklad vytvoří funkci, která vyhledá vzor v souborech nápovědy PowerShellu. V tomto příkladu funkce existuje pouze v relaci PowerShellu. Po zavření relace PowerShellu se funkce odstraní. Další informace najdete v tématu 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
Funkce se vytvoří na příkazovém řádku PowerShellu. Příkaz Function
používá název Search-Help
. Stisknutím klávesy Enter začněte do funkce přidávat příkazy. Na příkazovém >>
řádku přidejte jednotlivé příkazy a stiskněte Enter , jak je znázorněno v příkladu. Po přidání koncové závorky se vrátíte do příkazového řádku PowerShellu.
Funkce obsahuje dva příkazy. Proměnná $PSHelp
ukládá cestu k souborům nápovědy PowerShellu. $PSHOME
je instalační adresář PowerShellu s podadresářem en-US , který určuje každý *.txt
soubor v adresáři.
Příkaz Select-String
ve funkci používá parametry Path a Pattern . Parametr Path používá proměnnou $PSHelp
k získání cesty. Parametr Pattern používá řetězec About_ jako kritéria hledání.
Chcete-li funkci spustit, zadejte Search-Help
. Příkaz funkce Select-String
zobrazí výstup v konzole PowerShellu.
Příklad 5: Vyhledání řetězce v protokolu událostí Systému Windows
Tento příklad vyhledá řetězec v protokolu událostí Systému Windows. Proměnná $_
představuje aktuální objekt v kanálu. Další informace najdete v tématu about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'
Rutina Get-WinEvent
k zadání protokolu aplikace používá parametr LogName . Parametr MaxEvents získá z protokolu 50 nejnovějších událostí. Obsah protokolu je uložen v proměnné s názvem $Events
.
Proměnná $Events
se odešle do rutiny Select-String
v kanálu. Select-String
používá parametr InputObject. Proměnná $_
představuje aktuální objekt a message
je vlastností události. Parametr Pattern určuje řetězec Failed a hledá shody v $_.message
. Select-String
zobrazí výstup v konzole PowerShellu.
Příklad 6: Vyhledání řetězce v podadresářích
Tento příklad prohledá adresář a všechny jeho podadresáře pro konkrétní textový řetězec.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse |
Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
používá parametr Path k určení C:\Windows\System32*.txt. Parametr Recurse obsahuje podadresáře. Objekty se odesílají do kanálu do Select-String
.
Select-String
používá parametr Pattern a určuje řetězec Microsoft. K porovnání přesného případu řetězce se používá parametr CaseSensitive . Select-String
zobrazí výstup v konzole PowerShellu.
Poznámka:
V závislosti na vašich oprávněních se ve výstupu můžou zobrazovat zprávy o odepření přístupu.
Příklad 7: Vyhledání řetězců, které neodpovídají vzoru
Tento příklad ukazuje, jak vyloučit řádky dat, které neodpovídají vzoru.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
Rutina Get-Command
odešle objekty dolů do kanálu a Out-File
vytvoří soubor Command.txt v aktuálním adresáři. Select-String
používá parametr Path k určení souboru Command.txt. Parametr Pattern určuje Get a Set jako vzor hledání. Parametr NotMatch z výsledků vylučuje Get a Set .
Select-String
zobrazí výstup v konzole PowerShellu, která neobsahuje příkaz Get nebo Set.
Příklad 8: Vyhledání řádků před a za shodou
Tento příklad ukazuje, jak získat řádky před a za odpovídajícím vzorem.
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
Rutina Get-Command
odešle objekty dolů do kanálu a Out-File
vytvoří soubor Command.txt v aktuálním adresáři. Select-String
používá parametr Path k určení souboru Command.txt. Parametr Pattern určuje Get-Computer
jako vzor hledání. Parametr Context používá dvě hodnoty, před a za a vzor značky ve výstupu pomocí úhlové závorky (>
). Parametr Context vypíše dva řádky před první shodu vzorku a tři řádky za poslední shodu vzoru.
Příklad 9: Vyhledání všech shod vzorů
Tento příklad ukazuje, jak parametr AllMatches najde shodu jednotlivých vzorů v řádku textu. Ve výchozím nastavení Select-String
najde pouze první výskyt vzoru v řádku textu. Tento příklad používá vlastnosti objektu, které jsou nalezeny pomocí rutiny Get-Member
.
$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Program Files\PowerShell\7\en-US\default.help.txt:3: PowerShell Help System
C:\Program Files\PowerShell\7\en-US\default.help.txt:6: Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\7\en-US\default.help.txt:9: PowerShell Help describes PowerShell cmdlets
$A.Matches
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 4
Length : 10
Value : PowerShell
$A.Matches.Length
8
$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length
9
Rutina Get-ChildItem
používá parametr Path . Parametr Path používá proměnnou $PSHOME
, která určuje adresář PowerShellu. Zbytek cesty zahrnuje podadresář en-US a určuje každý *.txt
soubor v adresáři. Objekty Get-ChildItem
jsou uloženy v $A
proměnné. Proměnná $A
se odešle do rutiny Select-String
v kanálu. Select-String
pomocí parametru Pattern prohledává každý soubor pro řetězec PowerShellu.
Z příkazového řádku PowerShellu $A
se zobrazí obsah proměnné. Existuje řádek, který obsahuje dva výskyty řetězce PowerShellu.
Tato $A.Matches
vlastnost uvádí první výskyt vzoru PowerShellu na každém řádku.
Tato $A.Matches.Length
vlastnost spočítá první výskyt vzoru PowerShellu na každém řádku.
Proměnná $B
používá stejné Get-ChildItem
rutiny a Select-String
rutiny, ale přidá parametr AllMatches . Funkce AllMatches najde na každém řádku každý výskyt vzorového PowerShellu . Objekty uložené v objektech $A
a $B
proměnných jsou identické.
Tato $B.Matches.Length
vlastnost se zvyšuje, protože pro každý řádek se počítá každý výskyt vzoru PowerShellu .
Příklad 10 – Převod objektů kanálu na řetězce pomocí out-string
Výsledek ToString()
objektu s kanálem není stejná formátovaná řetězcová reprezentace vytvořená systémem formátování PowerShellu. Proto možná budete muset objekty nejprve pipetovat Out-String
.
Piping to Out-String
converts the formatted output into a single multi-line string object. To znamená, že když Select-String
najde shodu, vypíše celý víceřádkový řetězec.
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
Piping to Out-String -Stream
converts the formatted output into a multiple single-line string objects. To znamená, že když Select-String
najde shodu, zobrazí se pouze odpovídající řádek.
Parametry
-AllMatches
Označuje, že rutina hledá více než jednu shodu v každém řádku textu. Bez tohoto parametru Select-String
najde pouze první shodu v každém řádku textu.
Když Select-String
najde více než jednu shodu v řádku textu, stále generuje pouze jeden MatchInfo objekt pro řádek, ale vlastnost Match objektu obsahuje všechny shody.
Poznámka:
Tento parametr je ignorován při použití v kombinaci s parametrem SimpleMatch . Pokud chcete vrátit všechny shody a vzor, který hledáte, obsahuje znaky regulárního výrazu, musíte tyto znaky místo použití SimpleMatch utéct. Další informace o úniku regulárních výrazů najdete v about_Regular_Expressions .
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CaseSensitive
Označuje, že v rutině se rozlišují malá a velká písmena. Ve výchozím nastavení se shody nerozlišují malá a velká písmena.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Context
Zachytí zadaný počet řádků před a za čárou, která odpovídá vzoru.
Pokud jako hodnotu tohoto parametru zadáte jedno číslo, určuje toto číslo počet řádků zachycených před a za shodou. Pokud jako hodnotu zadáte dvě čísla, první číslo určuje počet řádků před shodou a druhé číslo určuje počet řádků za shodou. Například -Context 2,3
.
Ve výchozím zobrazení jsou čáry se shodou označené pravou závorkou () (>
ASCII 62) v prvním sloupci zobrazení. Neznačené řádky jsou kontextem.
Parametr Context nemění počet objektů vygenerovaných parametrem Select-String
.
Select-String
generuje jeden MatchInfo objekt pro každou shodu. Kontext je uložen jako pole řetězců ve vlastnosti Context objektu.
Když se výstup příkazu odešle do jiného Select-String
Select-String
příkazu, bude přijímající příkaz prohledávat pouze text na odpovídajícím řádku. Odpovídající řádek je hodnota Line vlastnost MatchInfo objektu, nikoli text v kontextových řádcích. V důsledku toho není parametr Context pro přijímající Select-String
příkaz platný.
Pokud kontext obsahuje shodu, MatchInfo objekt pro každou shodu zahrnuje všechny kontextové čáry, ale překrývající se čáry se zobrazí pouze jednou v zobrazení.
Typ: | Int32[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Culture
Určuje název jazykové verze, který se má shodovat se zadaným vzorem. Parametr Culture musí být použit s parametrem SimpleMatch . Výchozí chování používá jazykovou verzi aktuálního prostředí PowerShell runspace (relace).
Pokud chcete získat seznam všech podporovaných jazykových verzí, použijte Get-Culture -ListAvailable
příkaz.
Kromě toho tento parametr přijímá následující argumenty:
- CurrentCulture, to je výchozí;
- Řadové, to je nejazyčné binární porovnání;
- Invariantní, to je nezávislé porovnání jazykové verze.
Příkazem Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
získáte nejrychlejší binární porovnání.
Parametr Jazykové verze používá dokončování tabulátoru k procházení seznamu argumentů, které určují dostupné jazykové verze. Pokud chcete zobrazit seznam všech dostupných argumentů, použijte následující příkaz:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
Další informace o vlastnosti .NET CultureInfo.Name naleznete v tématu CultureInfo.Name.
Parametr Culture byl představen v PowerShellu 7.
Typ: | String |
Position: | Named |
Default value: | Culture of the current PowerShell session |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Encoding
Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM
.
Přijatelné hodnoty pro tento parametr jsou následující:
ascii
: Používá kódování znakové sady ASCII (7bitová).ansi
: Používá kódování pro kódovou stránku ANSI aktuální jazykové verze. Tato možnost byla přidána v PowerShellu 7.4.bigendianunicode
: Kóduje ve formátu UTF-16 pomocí pořadí velkých bajtů.bigendianutf32
: Kóduje ve formátu UTF-32 pomocí pořadí velkých bajtů.oem
: Používá výchozí kódování pro MS-DOS a konzolové programy.unicode
: Kóduje ve formátu UTF-16 pomocí malého bajtového pořadí.utf7
: Kóduje ve formátu UTF-7.utf8
: Kóduje ve formátu UTF-8.utf8BOM
: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM)utf8NoBOM
: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM)utf32
: Kóduje ve formátu UTF-32.
Počínaje PowerShellem 6.2 umožňuje parametr Kódování také číselná ID registrovaných znakových stránek (jako -Encoding 1251
) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"
). Další informace najdete v dokumentaci k .NET pro Encoding.CodePage.
Počínaje PowerShellem 7.4 můžete hodnotu parametru Encoding použít Ansi
k předání číselného ID pro znakovou stránku ANSI aktuální jazykové verze, aniž byste ji museli zadávat ručně.
Poznámka:
UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se při zadání parametru Encoding zapíše utf7
upozornění.
Typ: | Encoding |
Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Exclude
Vyloučí zadané položky. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například *.txt
. Jsou povoleny zástupné cardy.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Include
Zahrnuje zadané položky. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například *.txt
. Jsou povoleny zástupné cardy.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-InputObject
Určuje text, který se má prohledávat. Zadejte proměnnou, která obsahuje text, nebo zadejte příkaz nebo výraz, který získá text.
Použití parametru InputObject není stejné jako odesílání řetězců směrem dolů kanálu do Select-String
.
Když předáte Select-String
do rutiny více než jeden řetězec, vyhledá zadaný text v každém řetězci a vrátí každý řetězec, který obsahuje hledaný text.
Když použijete inputObject parametr k odeslání kolekce řetězců, Select-String
považuje kolekci za jediný kombinovaný řetězec. Select-String
vrátí řetězce jako jednotku, pokud najde hledaný text v libovolném řetězci.
Objekty FileInfo jsou považovány za cestu k souboru. Při zadání Select-String
cest k souborům prohledá obsah souboru, nikoli ToString()
reprezentaci objektu.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-List
Z každého vstupního souboru se vrátí pouze první instance odpovídajícího textu. Toto je nejúčinnější způsob, jak načíst seznam souborů, které mají obsah odpovídající regulárnímu výrazu.
Ve výchozím nastavení Select-String
vrátí MatchInfo objekt pro každou nalezenou shodu.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-LiteralPath
Určuje cestu k souborům, které se mají prohledávat. Hodnota parametru LiteralPath se používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence. Další informace najdete v tématu about_Quoting_Rules.
Typ: | String[] |
Aliasy: | PSPath, LP |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-NoEmphasis
Ve výchozím nastavení zvýrazní řetězec, který odpovídá vzoru, Select-String
který jste hledali, s parametrem Pattern . Parametr NoEmphasis zakáže zvýraznění.
Důraz používá záporné barvy na základě pozadí PowerShellu a barev textu. Pokud jsou například barvy PowerShellu černé pozadí s bílým textem. Zvýraznění je bílé pozadí s černým textem.
Tento parametr byl představen v PowerShellu 7.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-NotMatch
Parametr NotMatch najde text, který neodpovídá zadanému vzoru.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Path
Určuje cestu k souborům, které se mají prohledávat. Jsou povoleny zástupné cardy. Výchozí umístění je místní adresář.
Zadejte soubory v adresáři, například log1.txt
, *.doc
nebo *.*
. Pokud zadáte jenom adresář, příkaz selže.
Typ: | String[] |
Position: | 1 |
Default value: | Local directory |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
-Pattern
Určuje text, který se má najít na každém řádku. Hodnota vzoru se považuje za regulární výraz.
Další informace o regulárních výrazech najdete v tématu about_Regular_Expressions.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Quiet
Označuje, že rutina vrátí jednoduchou odpověď místo MatchInfo objektu. Vrácená hodnota je $true
, pokud se vzor najde nebo $null
pokud se vzor nenajde.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Raw
Způsobí, že rutina vypíše pouze odpovídající řetězce, nikoli objekty MatchInfo . Výsledkem je chování, které je nejvíce podobné příkazům grep systému Unix nebo Windows findstr.exe.
Tento parametr byl představen v PowerShellu 7.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SimpleMatch
Označuje, že rutina používá jednoduchou shodu místo shody regulárního výrazu. V jednoduché shodě Select-String
vyhledá vstup pro text v parametru Pattern . Neinterpretuje hodnotu parametru Pattern jako příkaz regulárního výrazu.
Také, když SimpleMatch je použita, Match vlastnost MatchInfo vrácený objekt je prázdný.
Poznámka:
Pokud se tento parametr používá s parametrem AllMatches , allMatches se ignoruje.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést libovolný objekt, který má metodu ToString()
.
Výstupy
Ve výchozím nastavení vrátí tato rutina objekt MatchInfo pro každou nalezenou shodu.
Pokud použijete parametr Quiet, vrátí tato rutina logickou hodnotu označující, zda byl nalezen vzor.
Pokud použijete parametr Raw , vrátí tato rutina sadu objektů String , které odpovídají vzoru.
Poznámky
PowerShell obsahuje následující aliasy pro Select-String
:
- Všechny platformy:
sls
Select-String
se podobá grep
systémům UNIX nebo findstr.exe
Windows.
Alias sls
pro rutinu Select-String
byl představen v PowerShellu 3.0.
Poznámka:
Podle schválených sloves pro příkazy PowerShellu je sc
oficiální předpona aliasu pro Select-*
rutiny , nikoli sl
. Proto by měl být scs
správný alias pro Select-String
, ne sls
. Toto pravidlo je výjimkou.
Při propojení objektů do Select-String
:
- Objekty FileInfo jsou považovány za cestu k souboru. Při zadání
Select-String
cest k souborům prohledá obsah souboru, nikoliToString()
reprezentaci objektu. - Výsledek
ToString()
objektu s kanálem není stejná formátovaná řetězcová reprezentace vytvořená systémem formátování PowerShellu. Proto možná budete muset objekty nejprve pipetovatOut-String
. Další informace naleznete v příkladu 10.
Chcete-li použít Select-String
, zadejte text, který chcete najít jako hodnotu parametru Pattern . Chcete-li zadat hledaný text, použijte následující kritéria:
- Zadejte text do uvozovaného řetězce a potom ho předejte na
Select-String
. - Uložte textový řetězec do proměnné a pak jako hodnotu parametru InputObject zadejte proměnnou.
- Pokud je text uložen v souborech, zadejte cestu k souborům pomocí parametru Cesta .
Ve výchozím nastavení Select-String
interpretuje hodnotu parametru Pattern jako regulární výraz. Další informace najdete v tématu about_Regular_Expressions. Pomocí parametru SimpleMatch můžete přepsat porovnávání regulárních výrazů. Parametr SimpleMatch vyhledá instance hodnoty parametru Pattern ve vstupu.
Výchozí výstup Select-String
je MatchInfo objekt, který obsahuje podrobné informace o shodách. Informace v objektu jsou užitečné, když hledáte text v souborech, protože MatchInfo objekty mají vlastnosti, jako je Název souboru a Řádek. Pokud vstup ze souboru není, hodnota těchto parametrů je InputStream.
Pokud nepotřebujete informace v objektu MatchInfo , použijte parametr Quiet . Parametr Quiet vrátí logickou hodnotu (True nebo False), která označuje, zda našla shodu místo MatchInfo objektu.
Při porovnávání frází používá aktuální jazykovou verzi nastavenou Select-String
pro systém. Pokud chcete najít aktuální jazykovou verzi, použijte rutinu Get-Culture
.
Chcete-li najít vlastnosti MatchInfo objektu, zadejte následující příkaz:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *