Como verificar se um arquivo contém uma string específica usando PowerShell
-
Verificar se um Arquivo Contém uma String Específica Usando
Select-String
no PowerShell -
Verificar se um Arquivo Contém uma String Específica Usando
Get-Content
no PowerShell - Verificar Vários Arquivos que Contêm uma String Específica
- Conclusão

Buscar uma string específica dentro de um arquivo de texto é uma tarefa comum ao trabalhar com o Windows PowerShell. Enquanto os ambientes Unix e Linux têm o confiável comando grep
, o PowerShell oferece uma abordagem alternativa usando os cmdlets Select-String
, Get-Content
e Get-ChildItem
.
Neste artigo, vamos explorar vários métodos de como usar o PowerShell para encontrar uma string em um arquivo de texto.
Verificar se um Arquivo Contém uma String Específica Usando Select-String
no PowerShell
Vamos supor que temos um arquivo Demo.txt
em nossa máquina, e queremos encontrar a string Demonstration
nele.
Aqui está o script PowerShell para fazer isso:
Select-String -Path C:\Users\pc\Demo\Demo.txt -Pattern 'Demonstration'
Neste script, usamos Select-String
com o parâmetro -Path
para especificar a localização do arquivo e o parâmetro -Pattern
para especificar a string que estamos procurando.
Se nosso arquivo contiver o padrão especificado ('Demonstration'
), o console irá exibir o nome do arquivo, o número da linha e a linha contendo a string.
Saída:
C:\Users\pc\Demo\Demo.txt:1:This purely for demonstration
A saída acima exibe o arquivo Demo.txt
com seu caminho completo, a linha contendo nossa string (linha 1
), e a linha contendo a string em si (This is purely for demonstration
).
Mas e se precisarmos apenas saber se o arquivo contém ou não a string? Nesse caso, podemos modificar o script da seguinte forma:
$Knw = Select-String -Path C:\Users\pc\Demo\Demo.txt -Pattern "Demonstration"
if ($Knw -ne $null) {
echo Contains String
}
else {
echo Does not Contain String
}
Neste script, definimos uma variável chamada $Knw
, que contém o resultado da string pesquisada "Demonstration"
no arquivo localizado no caminho especificado usando o Select-String
. Em seguida, verificamos se a variável $Knw
não é igual a $null
, o que significa que uma correspondência foi encontrada no arquivo.
Se uma correspondência for encontrada, imprime "Contains String."
. Se nenhuma correspondência for encontrada, imprime "Does not Contain String."
.
Saída:
Contains String
Como nosso arquivo contém o padrão "Demonstration"
, a saída imprime Contains String
.
Verificar se um Arquivo Contém uma String Específica Usando Get-Content
no PowerShell
Get-Content
é um cmdlet que busca o conteúdo de um caminho especificado para um arquivo e lê o conteúdo do arquivo para retornar um objeto string. Para usar Get-Content
em nosso arquivo Demo.txt
, usaremos o script ilustrado abaixo:
Get-Content -Path C:\Users\pc\Demo\Demo.txt | Select-String -Pattern "Demonstration"
Neste script, usamos o Get-Content
para ler o conteúdo do nosso arquivo Demo.txt
especificado pelo parâmetro -Path
e encaminhá-lo para o comando Select-String
, que usa o parâmetro -Pattern
para localizar a string Demonstration
.
Saída:
This purely for demonstration
Se quisermos apenas confirmar a presença da string, podemos usar o script mostrado abaixo:
If (Get-Content C:\Users\pc\Demo\Demo.txt | % { $_ -match "Demonstration" }) {
echo Contains String
}
else {
echo Does not Contains String
}
Neste script, usamos Get-Content
para ler os dados do arquivo localizado em C:\Users\pc\Demo\Demo.txt
e um pipe (|
) para processar cada linha do arquivo uma por uma. Dentro do bloco %{}
, verificamos se cada linha contém a string "Demonstration"
usando o operador -match
.
Se qualquer linha no arquivo contiver "Demonstration"
, imprime "Contains String"
. Se nenhuma linha no arquivo contiver "Demonstration"
, imprime "Does not Contains String"
.
Saída:
Contains String
Como nosso arquivo contém a string especificada ("Demonstration"
), obtemos Contains String
como saída.
Verificar Vários Arquivos que Contêm uma String Específica
E se você tiver mais de cinquenta arquivos de texto e quiser pesquisar uma string em todos eles? Vamos discutir duas maneiras de fazer isso.
Usando Get-ChildItem
e Search-String
no PowerShell
Podemos usar os cmdlets Get-ChildItem
e Select-String
. O cmdlet Get-ChildItem
encontrará um ou mais arquivos com base em nossos critérios de pesquisa.
Vamos olhar um exemplo. Supondo que nossa pasta Demo
tenha mais de cinquenta arquivos de texto, podemos pesquisar a string Demonstration
em todos eles usando este script:
Get-ChildItem -Path C:\Users\pc\Demo\ -Recurse | Select-String -Pattern 'Demonstration'
Neste script, usamos Get-ChildItem
para listar arquivos no diretório especificado (-Path
) e suas subpastas (-Recurse
). O operador de pipe (|
) passa a lista de arquivos para o cmdlet Select-String
.
Por fim, usamos Select-String
para pesquisar um padrão específico, 'Demonstration'
em cada arquivo.
O console irá exibir os nomes dos arquivos que contêm nossa string, os números das linhas e as linhas contendo a string.
Saída:
C:\Users\pc\Demo\Demo.txt:1:This purely for demonstration
C:\Users\pc\Demo\Insert.txt:1:We will use this demonstration for a test trial
C:\Users\pc\Demo\myfile.txt:1:This is a demonstration file for Get-ChildItem
Usando Select-String
no PowerShell
Podemos também usar apenas Select-String
para verificar a string específica em vários arquivos.
Select-String -Path C:\Users\pc\Demo\*.txt -Pattern 'Demonstration'
Neste script, usamos o caractere curinga (*
) no parâmetro -Path
para pesquisar todos os arquivos de texto na pasta Demo
. O cmdlet Select-String
irá buscar a string em todos os arquivos correspondentes.
Saída:
C:\Users\pc\Demo\Demo.txt:1:This purely for demonstration
C:\Users\pc\Demo\Insert.txt:1:We will use this demonstration for a test trial
C:\Users\pc\Demo\myfile.txt:1:This is a demonstration file for Get-ChildItem
Assim como acima, o console irá exibir os nomes dos arquivos que contêm nossa string, os números das linhas e as linhas contendo a string.
Conclusão
O Windows PowerShell fornece um conjunto de ferramentas para buscar eficientemente strings em arquivos de texto. Quer você prefira usar Select-String
, Get-Content
, ou uma combinação de Get-ChildItem
e Select-String
, você pode facilmente localizar e manipular dados dentro de seus arquivos.
Com esses cmdlets, você não terá problemas para encontrar as informações de que precisa, tornando as buscas de arquivos de texto no PowerShell descomplicadas.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedInArtigo relacionado - PowerShell String
- Array de Strings em PowerShell
- Como Converter um Objeto de Array em uma String no PowerShell
- Como Converter uma String Segura em Texto Simples no PowerShell
- Como Encontrar a Posição de uma Substring no PowerShell
- Como Escapar Aspas Simples e Aspas Duplas no PowerShell
- Como Extrair uma Substring do PowerShell de uma String