Select-String

Localiza texto em cadeias de caracteres e arquivos.

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 correspondência de expressão regular para procurar 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 baseia-se 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 encontrar várias correspondências por linha, exibir texto antes e depois da correspondência ou exibir um valor booleano (True ou False) 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 caracteres específica, como quando você está pesquisando arquivos de texto Unicode. Select-String usa a marca de ordem de bytes (BOM) para detetar o formato de codificação do arquivo. Se o arquivo não tiver BOM, ele assume que a codificação é UTF8.

Exemplos

Exemplo 1: Encontrar 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-Stringusa o parâmetro Pattern para especificar HELLO. O parâmetro CaseSensitive especifica que o caso deve corresponder apenas ao padrão maiúsculo. 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 ficheiros 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 .txtde nome de arquivo . O parâmetro Pattern especifica o texto a ser correspondido 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: Encontrar 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 Pattern especifica para corresponder a 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 procurar um padrão nos arquivos de ajuda do PowerShell. Neste 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 como 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: Procurar uma cadeia de caracteres num registo 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, consulte 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 caso exato da cadeia de caracteres. Select-String exibe a saída no console do PowerShell.

Nota

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 partida

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 correspondências de padrão na saída com um colchete angular (>). O parâmetro Context produz 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ão

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 procurar a cadeia de caracteres PowerShell em cada arquivo.

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 PowerShell padrão 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 o mesmo Get-ChildItem e Select-String cmdlets, mas adiciona o parâmetro AllMatches . AllMatches localiza cada ocorrência do PowerShell padrão 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, cada ocorrência do PowerShell padrão é contada.

Exemplo 10 - Converter objetos de pipeline em strings usando 'Out-String'

O ToString() resultado do objeto canalizado não é a mesma representação de cadeia de caracteres rica produzida pelo sistema de formatação do PowerShell. Então, você pode precisar canalizar os objetos para Out-String primeiro.

Tubulação para Out-String converter 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, ela gera a cadeia de caracteres de várias linhas inteira.

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

Canalização para Out-String -Stream converter 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 produz apenas a linha correspondente.

Parâmetros

-AllMatches

Indica que o cmdlet procura 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.

Nota

Este parâmetro é ignorado quando usado em combinação com o parâmetro SimpleMatch . Se você deseja retornar todas as correspondências e o padrão que você está procurando contém caracteres de expressão regular, você deve escapar desses caracteres em vez de usar SimpleMatch. Consulte about_Regular_Expressions para obter mais informações sobre como escapar de expressões regulares.

Tipo:SwitchParameter
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CaseSensitive

Indica que as correspondências do cmdlet diferenciam maiúsculas de minúsculas. Por padrão, as correspondências não diferenciam maiúsculas de minúsculas.

Tipo:SwitchParameter
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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 determinará o número de linhas capturadas antes e depois da correspondência. Se introduzir dois números como valor, o primeiro número determina o número de linhas antes da correspondência e o segundo número determina o número de linhas após a correspondência. Por exemplo, -Context 2,3.

No visor predefinido, as linhas com uma correspondência são indicadas por um colchete angular reto (>) (ASCII 62) na primeira coluna do ecrã. Linhas não marcadas 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 recetor procura 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[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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 espaço de execução (sessão) atual do PowerShell.

Para obter uma lista de todas as culturas suportadas, use Get-Culture -ListAvailable o comando.

Além disso, este parâmetro aceita os seguintes argumentos:

  • CurrentCulture, que é padrão;
  • Ordinal, isto é, comparação binária não-linguística;
  • Invariante, isto é, 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
Position:Named
Default value:Culture of the current PowerShell session
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Encoding

Especifica o tipo de codificação para o arquivo de destino. O valor predefinido é 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 em formato UTF-7.
  • utf8: Codifica em formato UTF-8.
  • utf8BOM: Codifica no formato UTF-8 com marca de ordem de bytes (BOM)
  • utf8NoBOM: Codifica no formato UTF-8 sem marca de ordem de bytes (BOM)
  • utf32: Codifica em 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.

Nota

UTF-7* não é mais recomendado para usar. A partir do PowerShell 7.1, um aviso será escrito se você especificar utf7 para o parâmetro Encoding .

Tipo:Encoding
Valores aceites:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Exclude

Exclua os itens especificados. O valor desse parâmetro qualifica o parâmetro Path . Insira um elemento ou padrão de caminho, como *.txt. Curingas são permitidos.

Tipo:String[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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. Curingas são permitidos.

Tipo:String[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:True

-InputObject

Especifica o texto a ser pesquisado. Insira uma variável que contenha o texto ou digite um comando ou 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 procura 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
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-List

Somente a primeira instância de texto correspondente é retornada de cada arquivo de entrada. Esta é 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
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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 curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples dizem 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
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-NoEmphasis

Por padrão, Select-String realça a cadeia de caracteres que corresponde ao padrão que você pesquisou com o parâmetro Pattern . O parâmetro NoEmphasis desativa o realce.

A ênfase usa cores negativas com base no plano 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
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NotMatch

O parâmetro NotMatch localiza o texto que não corresponde ao padrão especificado.

Tipo:SwitchParameter
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Path

Especifica o caminho para os arquivos a serem pesquisados. Curingas são permitidos. O local padrão é o diretório local.

Especifique arquivos no diretório, como log1.txt, *.docou *.*. Se você especificar apenas um diretório, o comando falhará.

Tipo:String[]
Position:1
Default value:Local directory
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais: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[]
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais: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
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Raw

Faz com que o cmdlet produza apenas as cadeias de caracteres correspondentes, em vez de objetos MatchInfo . Este é o resultado em comportamento que é o mais semelhante aos comandos Unix grep ou Windows findstr.exe .

Esse parâmetro foi introduzido no PowerShell 7.

Tipo:SwitchParameter
Position:Named
Default value:False
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais: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.

Nota

Quando esse parâmetro é usado com o parâmetro AllMatches , o AllMatches é ignorado.

Tipo:SwitchParameter
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Entradas

PSObject

Você pode canalizar qualquer objeto que tenha um ToString() método para esse cmdlet.

Saídas

MatchInfo

Por padrão, esse cmdlet retorna um objeto MatchInfo para cada correspondência encontrada.

Boolean

Quando você usa o parâmetro Quiet , esse cmdlet retorna um valor booleano indicando se o padrão foi encontrado.

String

Quando você usa o parâmetro Raw , esse cmdlet retorna um conjunto de objetos String que correspondem ao padrão.

Notas

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 para o Select-String cmdlet foi introduzido no PowerShell 3.0.

Nota

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. Trata-se de 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 a ToString() representação do objeto.
  • O ToString() resultado do objeto canalizado não é a mesma representação de cadeia de caracteres rica produzida pelo sistema de formatação do PowerShell. Então, você pode precisar canalizar os objetos para Out-String primeiro. Para obter mais informações, consulte o Exemplo 10.

Para usar Select-Stringo , digite o texto que você deseja localizar como o valor do parâmetro Pattern . Para especificar o texto a ser pesquisado, use os seguintes critérios:

  • Digite o texto em uma cadeia de caracteres entre aspas e, em seguida, canalize-o para Select-String.
  • Armazene uma cadeia de caracteres de texto em uma variável e, em seguida, 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 Pattern 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á procurando texto em arquivos, porque 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 booleano (True ou False) para indicar se encontrou uma correspondência, em vez de um objeto MatchInfo .

Ao fazer a correspondência de 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 *