Select-String
Localiza texto em arquivos e cadeias de caracteres.
Sintaxe
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
O Select-String
cmdlet usa a correspondência de expressão regular para pesquisar padrões de texto em cadeias de caracteres e arquivos de entrada. Você pode usar Select-String
semelhante ao grep
UNIX ou findstr.exe
no Windows.
Select-String
é baseado em linhas de texto. Por padrão, Select-String
localiza a primeira correspondência em cada linha e, para cada correspondência, exibe o nome do arquivo, o número da linha e todo o texto na linha que contém a correspondência. Você pode direcionar Select-String
para localizar várias correspondências por linha, exibir texto antes e depois da correspondência ou exibir um valor booleano (Verdadeiro ou Falso) que indica se uma correspondência foi encontrada.
Select-String
pode exibir todas as correspondências de texto ou parar após a primeira correspondência em cada arquivo de entrada.
Select-String
pode ser usado para exibir todo o texto que não corresponde ao padrão especificado.
Você também pode especificar que Select-String
deve esperar uma codificação de caractere específica, como quando você está pesquisando arquivos de texto Unicode. Select-String
usa a marca de ordem de byte (BOM) para detectar o formato de codificação do arquivo. Se o arquivo não tiver BOM, ele assumirá que a codificação é UTF8.
Exemplos
Exemplo 1: Localizar uma correspondência que diferencia maiúsculas de minúsculas
Este exemplo faz uma correspondência que diferencia maiúsculas de minúsculas do texto que foi enviado pelo pipeline para o Select-String
cmdlet.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
As cadeias de caracteres de texto Hello e HELLO são enviadas pelo pipeline para o Select-String
cmdlet.
Select-String
usa o parâmetro Pattern para especificar HELLO. O parâmetro CaseSensitive especifica que o caso deve corresponder apenas ao padrão de letras maiúsculas. SimpleMatch é um parâmetro opcional e especifica que a cadeia de caracteres no padrão não é interpretada como uma expressão regular.
Select-String
exibe HELLO no console do PowerShell.
Exemplo 2: Localizar correspondências em arquivos de texto
Este comando pesquisa todos os arquivos com a extensão de nome de .txt
arquivo no diretório atual. A saída exibe as linhas nesses arquivos que incluem a cadeia de caracteres especificada.
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
Neste exemplo, Get-Alias
e Get-Command
são usados com o Out-File
cmdlet para criar dois arquivos de texto no diretório atual, Alias.txt e Command.txt.
Select-String
usa o parâmetro Path com o curinga asterisco (*
) para pesquisar todos os arquivos no diretório atual com a extensão .txt
de nome de arquivo . O parâmetro Pattern especifica o texto para corresponder a Get-. Select-String
exibe a saída no console do PowerShell. O nome do arquivo e o número da linha precedem cada linha de conteúdo que contém uma correspondência para o parâmetro Pattern .
Exemplo 3: Localizar uma correspondência de padrão
Neste exemplo, vários arquivos são pesquisados para encontrar correspondências para o padrão especificado. O padrão usa um quantificador de expressão regular. Para obter mais informações, consulte 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
O Select-String
cmdlet usa dois parâmetros, Path e Pattern. O parâmetro Path usa a variável $PSHOME
que especifica o diretório do PowerShell. O restante do caminho inclui o subdiretório en-US e especifica cada *.txt
arquivo no diretório. O parâmetro Padrão especifica a correspondência de um ponto de interrogação (?
) em cada arquivo. Uma barra invertida (\
) é usada como um caractere de escape e é necessária porque o ponto de interrogação (?
) é um quantificador de expressão regular. Select-String
exibe a saída no console do PowerShell. O nome do arquivo e o número da linha precedem cada linha de conteúdo que contém uma correspondência para o parâmetro Pattern .
Exemplo 4: Usar Select-String em uma função
Este exemplo cria uma função para pesquisar um padrão nos arquivos de ajuda do PowerShell. Para este exemplo, a função só existe na sessão do PowerShell. Quando a sessão do PowerShell é fechada, a função é excluída. Para obter mais informações, consulte 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 função é criada na linha de comando do PowerShell. O Function
comando usa o nome Search-Help
. Pressione Enter para começar a adicionar instruções à função. No >>
prompt, adicione cada instrução e pressione Enter , conforme mostrado no exemplo. Depois que o colchete de fechamento for adicionado, você retornará a um prompt do PowerShell.
A função contém dois comandos. A $PSHelp
variável armazena o caminho para os arquivos de ajuda do PowerShell. $PSHOME
é o diretório de instalação do PowerShell com o subdiretório en-US que especifica cada *.txt
arquivo no diretório.
O Select-String
comando na função usa os parâmetros Path e Pattern . O parâmetro Path usa a $PSHelp
variável para obter o caminho. O parâmetro Pattern usa a cadeia de caracteres About_ como critério de pesquisa.
Para executar a função, digite Search-Help
. O comando da Select-String
função exibe a saída no console do PowerShell.
Exemplo 5: Pesquisar uma cadeia de caracteres em um log de eventos do Windows
Este exemplo procura uma cadeia de caracteres em um log de eventos do Windows. A variável $_
representa o objeto atual no pipeline. Para obter mais informações, confira about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'
O Get-WinEvent
cmdlet usa o parâmetro LogName para especificar o log do aplicativo. O parâmetro MaxEvents obtém os 50 eventos mais recentes do log. O conteúdo do log é armazenado na variável chamada $Events
.
A $Events
variável é enviada pelo pipeline para o Select-String
cmdlet. Select-String
usa o parâmetro InputObject . A $_
variável representa o objeto atual e message
é uma propriedade do evento. O parâmetro Pattern especifica a cadeia de caracteres Failed e procura correspondências em $_.message
. Select-String
exibe a saída no console do PowerShell.
Exemplo 6: Localizar uma cadeia de caracteres em subdiretórios
Este exemplo pesquisa um diretório e todos os seus subdiretórios em busca de uma cadeia de caracteres de texto específica.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse |
Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
usa o parâmetro Path para especificar C:\Windows\System32*.txt. O parâmetro Recurse inclui os subdiretórios. Os objetos são enviados pelo pipeline para Select-String
.
Select-String
usa o parâmetro Pattern e especifica a cadeia de caracteres Microsoft. O parâmetro CaseSensitive é usado para corresponder ao uso exato de maiúsculas e minúsculas da cadeia de caracteres. Select-String
exibe a saída no console do PowerShell.
Observação
Dependendo de suas permissões, você pode ver mensagens de acesso negado na saída.
Exemplo 7: Localizar cadeias de caracteres que não correspondem a um padrão
Este exemplo mostra como excluir linhas de dados que não correspondem a um padrão.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
O Get-Command
cmdlet envia objetos pelo pipeline para criar Out-File
o arquivo Command.txt no diretório atual. Select-String
usa o parâmetro Path para especificar o arquivo Command.txt . O parâmetro Pattern especifica Get e Set como o padrão de pesquisa. O parâmetro NotMatch exclui Get e Set dos resultados.
Select-String
exibe a saída no console do PowerShell que não inclui Get ou Set.
Exemplo 8: Localizar linhas antes e depois de uma correspondência
Este exemplo mostra como obter as linhas antes e depois do padrão correspondente.
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
O Get-Command
cmdlet envia objetos pelo pipeline para criar Out-File
o arquivo Command.txt no diretório atual. Select-String
usa o parâmetro Path para especificar o arquivo Command.txt . O parâmetro Pattern especifica Get-Computer
como o padrão de pesquisa. O parâmetro Context usa dois valores, antes e depois, e marca as correspondências de padrão na saída com um colchete angular (>
). O parâmetro Context gera as duas linhas antes da primeira correspondência de padrão e três linhas após a última correspondência de padrão.
Exemplo 9: Localizar todas as correspondências de padrões
Este exemplo mostra como o parâmetro AllMatches localiza cada correspondência de padrão em uma linha de texto. Por padrão, Select-String
localiza apenas a primeira ocorrência de um padrão em uma linha de texto. Este exemplo usa propriedades de objeto encontradas com o Get-Member
cmdlet.
$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
O Get-ChildItem
cmdlet usa o parâmetro Path . O parâmetro Path usa a variável $PSHOME
que especifica o diretório do PowerShell. O restante do caminho inclui o subdiretório en-US e especifica cada *.txt
arquivo no diretório. Os Get-ChildItem
objetos são armazenados na $A
variável. A $A
variável é enviada pelo pipeline para o Select-String
cmdlet. Select-String
usa o parâmetro Pattern para pesquisar cada arquivo para a cadeia de caracteres PowerShell.
Na linha de comando do PowerShell, o conteúdo da $A
variável é exibido. Há uma linha que contém duas ocorrências da cadeia de caracteres PowerShell.
A $A.Matches
propriedade lista a primeira ocorrência do padrão PowerShell em cada linha.
A $A.Matches.Length
propriedade conta a primeira ocorrência do padrão PowerShell em cada linha.
A $B
variável usa os mesmos Get-ChildItem
cmdlets e Select-String
, mas adiciona o parâmetro AllMatches . AllMatches localiza cada ocorrência do padrão PowerShell em cada linha. Os objetos armazenados nas $A
variáveis e $B
são idênticos.
A $B.Matches.Length
propriedade aumenta porque, para cada linha, todas as ocorrências do padrão do PowerShell são contadas.
Exemplo 10 – Converter objetos de pipeline em cadeias de caracteres usando 'Out-String'
O ToString()
resultado do objeto canalizado não é a mesma representação de cadeia de caracteres avançada produzida pelo sistema de formatação do PowerShell. Portanto, pode ser necessário canalizar os objetos primeiro Out-String
.
O encanamento para Out-String
converte a saída formatada em um único objeto de cadeia de caracteres de várias linhas. Isso significa que, quando Select-String
encontra uma correspondência, ele gera toda a string de várias linhas.
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
O transporte para Out-String -Stream
converte a saída formatada em vários objetos de cadeia de caracteres de linha única. Isso significa que, quando Select-String
encontra uma correspondência, ela gera apenas a linha correspondente.
Parâmetros
-AllMatches
Indica que o cmdlet pesquisa mais de uma correspondência em cada linha de texto. Sem esse parâmetro, Select-String
localiza apenas a primeira correspondência em cada linha de texto.
Quando Select-String
encontra mais de uma correspondência em uma linha de texto, ele ainda emite apenas um objeto MatchInfo para a linha, mas a propriedade Matches do objeto contém todas as correspondências.
Observação
Esse parâmetro é ignorado quando usado em combinação com o parâmetro SimpleMatch . Se você quiser retornar todas as correspondências e o padrão que você está procurando contiver caracteres de expressão regular, você deverá escapar desses caracteres em vez de usar SimpleMatch. Consulte about_Regular_Expressions para obter mais informações sobre como escapar expressões regulares.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-CaseSensitive
Indica que as correspondências de cmdlet diferenciam maiúsculas de minúsculas. Por padrão, as correspondências não diferenciam maiúsculas de minúsculas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Context
Captura o número especificado de linhas antes e depois da linha que corresponde ao padrão.
Se você inserir um número como o valor desse parâmetro, esse número determina o número de linhas capturadas antes e após a correspondência. Se você inserir dois números como valor, o primeiro número determina o número de linhas antes da correspondência e o segundo determina o número de linhas após a correspondência. Por exemplo, -Context 2,3
.
Na exibição padrão, as linhas com uma correspondência são indicadas por um colchete angular reto (>
) (ASCII 62) na primeira coluna da exibição. Linhas desmarcadas são o contexto.
O parâmetro Context não altera o número de objetos gerados pelo Select-String
.
Select-String
gera um objeto MatchInfo para cada correspondência. O contexto é armazenado como uma matriz de cadeias de caracteres na propriedade Context do objeto.
Quando a saída de um Select-String
comando é enviada pelo pipeline para outro Select-String
comando, o comando de recebimento pesquisa apenas o texto na linha correspondente. A linha correspondente é o valor da propriedade Line do objeto MatchInfo, não o texto nas linhas de contexto. Como resultado, o parâmetro Context não é válido no comando de recebimento Select-String
.
Quando o contexto inclui uma correspondência, o objeto MatchInfo para cada correspondência inclui todas as linhas de contexto, mas as linhas sobrepostas aparecem apenas uma vez na exibição.
Tipo: | Int32[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Culture
Especifica um nome de cultura para corresponder ao padrão especificado. O parâmetro Culture deve ser usado com o parâmetro SimpleMatch . O comportamento padrão usa a cultura do runspace atual do PowerShell (sessão).
Para obter uma lista de todas as culturas suportadas, use Get-Culture -ListAvailable
command.
Além disso, esse parâmetro aceita os seguintes argumentos:
- CurrentCulture, que é padrão;
- Ordinal, que é comparação binária não linguística;
- Invariante, ou seja, comparação independente da cultura.
Com Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
o comando, você obtém a comparação binária mais rápida.
O parâmetro Culture usa o preenchimento de tabulação para percorrer a lista de argumentos que especificam as culturas disponíveis. Para listar todos os argumentos disponíveis, use o seguinte comando:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
Para obter mais informações sobre a propriedade .NET CultureInfo.Name, consulte CultureInfo.Name.
O parâmetro Culture foi introduzido no PowerShell 7.
Tipo: | String |
Cargo: | Named |
Valor padrão: | Culture of the current PowerShell session |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Encoding
Especifica o tipo de codificação para o arquivo de destino. O valor padrão é utf8NoBOM
.
Os valores aceitáveis para este parâmetro são os seguintes:
ascii
: Usa a codificação para o conjunto de caracteres ASCII (7 bits).ansi
: Usa a codificação para a página de código ANSI da cultura atual. Essa opção foi adicionada no PowerShell 7.4.bigendianunicode
: Codifica no formato UTF-16 usando a ordem de bytes big-endian.bigendianutf32
: Codifica no formato UTF-32 usando a ordem de bytes big-endian.oem
: Usa a codificação padrão para MS-DOS e programas de console.unicode
: Codifica no formato UTF-16 usando a ordem de bytes little-endian.utf7
: Codifica no formato UTF-7.utf8
: Codifica no formato UTF-8.utf8BOM
: Codifica no formato UTF-8 com Marca de Ordem de Byte (BOM)utf8NoBOM
: Codifica no formato UTF-8 sem Marca de Ordem de Byte (BOM)utf32
: Codifica no formato UTF-32.
A partir do PowerShell 6.2, o parâmetro Encoding também permite IDs numéricas de páginas de código registradas (como -Encoding 1251
) ou nomes de cadeia de caracteres de páginas de código registradas (como -Encoding "windows-1251"
). Para obter mais informações, consulte a documentação do .NET para Encoding.CodePage.
A partir do PowerShell 7.4, você pode usar o Ansi
valor do parâmetro Encoding para passar a ID numérica da página de código ANSI da cultura atual sem precisar especificá-la manualmente.
Observação
O uso de UTF-7* não é mais recomendado. A partir do PowerShell 7.1, um aviso será escrito se você especificar utf7
para o parâmetro Codificação .
Tipo: | Encoding |
Valores aceitos: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Cargo: | Named |
Valor padrão: | UTF8NoBOM |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Exclude
Exclui os itens especificados. O valor desse parâmetro qualifica o parâmetro Path . Insira um elemento ou padrão de caminho, como *.txt
. Caracteres curinga são permitidos.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-Include
Inclui os itens especificados. O valor desse parâmetro qualifica o parâmetro Path . Insira um elemento ou padrão de caminho, como *.txt
. Caracteres curinga são permitidos.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-InputObject
Especifica o texto a ser pesquisada. Insira uma variável que contém o texto ou digite um comando ou uma expressão que obtenha o texto.
Usar o parâmetro InputObject não é o mesmo que enviar cadeias de caracteres pelo pipeline para Select-String
.
Quando você canaliza mais de uma cadeia de caracteres para o Select-String
cmdlet, ele pesquisa o texto especificado em cada cadeia de caracteres e retorna cada cadeia de caracteres que contém o texto de pesquisa.
Quando você usa o parâmetro InputObject para enviar uma coleção de cadeias de caracteres, Select-String
trata a coleção como uma única cadeia de caracteres combinada. Select-String
Retorna as cadeias de caracteres como uma unidade se encontrar o texto de pesquisa em qualquer cadeia de caracteres.
Os objetos FileInfo são tratados como um caminho para um arquivo. Quando os caminhos de arquivo são especificados, Select-String
pesquisa o conteúdo do arquivo, não a ToString()
representação do objeto.
Tipo: | PSObject |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-List
Somente a primeira instância do texto correspondente é retornada de cada arquivo de entrada. Essa é a maneira mais eficiente de recuperar uma lista de arquivos que têm conteúdo correspondente à expressão regular.
Por padrão, Select-String
retorna um objeto MatchInfo para cada correspondência encontrada.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-LiteralPath
Especifica o caminho para os arquivos a serem pesquisados. O valor do parâmetro LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples informam ao PowerShell para não interpretar nenhum caractere como sequências de escape. Para obter mais informações, consulte about_Quoting_Rules.
Tipo: | String[] |
Aliases: | PSPath, LP |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-NoEmphasis
Por padrão, Select-String
realça a cadeia de caracteres que corresponde ao padrão pesquisado com o parâmetro Pattern . O parâmetro NoEmphasis desabilita o realce.
A ênfase usa cores negativas com base na tela de fundo do PowerShell e nas cores do texto. Por exemplo, se as cores do PowerShell forem um plano de fundo preto com texto branco. A ênfase é um fundo branco com texto preto.
Esse parâmetro foi introduzido no PowerShell 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-NotMatch
O parâmetro NotMatch localiza texto que não corresponde ao padrão especificado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Path
Especifica o caminho para os arquivos a serem pesquisados. Caracteres curinga são permitidos. O local padrão é o diretório local.
Especifique arquivos no diretório, como log1.txt
, *.doc
, ou *.*
. Se você especificar apenas um diretório, o comando falha.
Tipo: | String[] |
Cargo: | 1 |
Valor padrão: | Local directory |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-Pattern
Especifica o texto a ser localizado em cada linha. O valor do padrão é tratado como uma expressão regular.
Para saber mais sobre expressões regulares, consulte about_Regular_Expressions.
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Quiet
Indica que o cmdlet retorna uma resposta simples em vez de um objeto MatchInfo . O valor retornado é $true
se o padrão for encontrado ou $null
se o padrão não for encontrado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Raw
Faz com que o cmdlet produza apenas as cadeias de caracteres correspondentes, em vez de objetos MatchInfo . Esses são os resultados em um comportamento mais semelhante aos comandos grep do Unix ou Windows findstr.exe.
Esse parâmetro foi introduzido no PowerShell 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-SimpleMatch
Indica que o cmdlet usa uma correspondência simples em vez de uma correspondência de expressão regular. Em uma correspondência simples, Select-String
pesquisa a entrada para o texto no parâmetro Pattern . Ele não interpreta o valor do parâmetro Pattern como uma instrução de expressão regular.
Além disso, quando SimpleMatch é usado, a propriedade Matches do objeto MatchInfo retornado está vazia.
Observação
Quando esse parâmetro é usado com o parâmetro AllMatches , o AllMatches é ignorado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar qualquer objeto que tenha um ToString()
método para esse cmdlet.
Saídas
Por padrão, esse cmdlet retorna um objeto MatchInfo para cada correspondência encontrada.
Quando você usa o parâmetro Quiet , esse cmdlet retorna um valor booliano indicando se o padrão foi encontrado.
Quando você usa o parâmetro Raw , esse cmdlet retorna um conjunto de objetos String que correspondem ao padrão.
Observações
O PowerShell inclui os seguintes aliases para Select-String
:
- Todas as plataformas:
sls
Select-String
é semelhante ao grep
UNIX ou findstr.exe
no Windows.
O sls
alias do cmdlet foi introduzido Select-String
no PowerShell 3.0.
Observação
De acordo com Verbos Aprovados para Comandos do PowerShell, o prefixo de alias oficial para Select-*
cmdlets é sc
, não sl
. Portanto, o alias adequado para Select-String
deve ser scs
, não sls
. Esta é uma exceção a esta regra.
Ao canalizar objetos para Select-String
:
- Os objetos FileInfo são tratados como um caminho para um arquivo. Quando os caminhos de arquivo são especificados,
Select-String
pesquisa o conteúdo do arquivo, não aToString()
representação do objeto. - O
ToString()
resultado do objeto canalizado não é a mesma representação de cadeia de caracteres avançada produzida pelo sistema de formatação do PowerShell. Portanto, pode ser necessário canalizar os objetos primeiroOut-String
. Para obter mais informações, consulte o Exemplo 10.
Para usar Select-String
o , digite o texto que deseja localizar como o valor do parâmetro Padrão . Para especificar o texto a ser pesquisado, use os seguintes critérios:
- Digite o texto em uma cadeia de caracteres entre aspas e canalize-o para
Select-String
. - Armazene uma cadeia de caracteres de texto em uma variável e especifique a variável como o valor do parâmetro InputObject .
- Se o texto estiver armazenado em arquivos, use o parâmetro Path para especificar o caminho para os arquivos.
Por padrão, Select-String
interpreta o valor do parâmetro Padrão como uma expressão regular. Para obter mais informações, consulte about_Regular_Expressions. Você pode usar o parâmetro SimpleMatch para substituir a correspondência de expressão regular. O parâmetro SimpleMatch localiza instâncias do valor do parâmetro Pattern na entrada.
A saída padrão de Select-String
é um objeto MatchInfo , que inclui informações detalhadas sobre as correspondências. As informações no objeto são úteis quando você está pesquisando texto em arquivos, pois os objetos MatchInfo têm propriedades como Filename e Line. Quando a entrada não é do arquivo, o valor desses parâmetros é InputStream.
Se você não precisar das informações no objeto MatchInfo , use o parâmetro Quiet . O parâmetro Quiet retorna um valor booliano (True ou False) para indicar se encontrou uma correspondência, em vez de um objeto MatchInfo .
Ao combinar frases, Select-String
usa a cultura atual definida para o sistema. Para localizar a cultura atual, use o Get-Culture
cmdlet.
Para localizar as propriedades de um objeto MatchInfo , digite o seguinte comando:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *