Get-Content
Obtém o conteúdo do item no local especificado.
Sintaxe
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]
Description
O cmdlet Get-Content
obtém o conteúdo do item no local especificado pelo caminho, como o texto em um arquivo ou o conteúdo de uma função. Para arquivos, o conteúdo é lido uma linha de cada vez e retorna uma coleção de objetos, cada um representando uma linha de conteúdo.
A partir do PowerShell 3.0, Get-Content
também pode obter um número especificado de linhas desde o início ou o final de um item.
Exemplos
Exemplo 1: Obter o conteúdo de um arquivo de texto
Este exemplo obtém o conteúdo de um arquivo no diretório atual. O arquivo LineNumbers.txt
tem 100 linhas no formato, Esta é a linha X e é usada em vários exemplos.
1..100 | ForEach-Object {
Add-Content -Path .\LineNumbers.txt -Value "This is line $_."
}
Get-Content -Path .\LineNumbers.txt
This is Line 1
This is Line 2
...
This is line 99.
This is line 100.
Os valores de matriz de 1 a 100 são enviados pelo pipeline para o cmdlet ForEach-Object
.
ForEach-Object
usa um bloco de script com o cmdlet Add-Content
para criar o arquivo LineNumbers.txt
. A variável $_
representa os valores da matriz à medida que cada objeto é enviado pelo pipeline. O cmdlet Get-Content
usa o parâmetro Path para especificar o arquivo LineNumbers.txt
e exibe o conteúdo no console do PowerShell.
Exemplo 2: limitar o número de linhas Get-Content retorna
Esse comando obtém as cinco primeiras linhas de um arquivo. O parâmetro TotalCount obtém as cinco primeiras linhas de conteúdo. Este exemplo usa o LineNumbers.txt
referenciado no Exemplo 1.
Get-Content -Path .\LineNumbers.txt -TotalCount 5
This is Line 1
This is Line 2
This is Line 3
This is Line 4
This is Line 5
Exemplo 3: Obter uma linha de conteúdo específica de um arquivo de texto
Esse comando obtém um número específico de linhas de um arquivo e exibe apenas a última linha desse conteúdo. O parâmetro TotalCount obtém as primeiras 25 linhas de conteúdo. Este exemplo usa o arquivo LineNumbers.txt
referenciado no Exemplo 1.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
O comando Get-Content
é encapsulado em parênteses para que o comando seja concluído antes de ir para a próxima etapa.
Get-Content
retorna uma matriz de linhas, isso permite adicionar a notação de índice após o parêntese para recuperar um número de linha específico. Nesse caso, o índice [-1]
especifica o último índice na matriz retornada de 25 linhas recuperadas.
Exemplo 4: Obter a última linha de um arquivo de texto
Esse comando obtém a última linha de conteúdo de um arquivo. Este exemplo usa o arquivo LineNumbers.txt
que foi criado no Exemplo 1.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
Este exemplo usa o cmdlet Get-Item
para demonstrar que você pode redirecionar arquivos para Get-Content
. O parâmetro Tail obtém a última linha do arquivo. Esse método é mais rápido do que recuperar todas as linhas em uma variável e usar a notação de índice [-1]
.
Exemplo 5: Obter o conteúdo de um fluxo de dados alternativo
Este exemplo descreve como usar o parâmetro Stream para obter o conteúdo de um fluxo de dados alternativo para arquivos armazenados em um volume do Windows NTFS. Neste exemplo, o cmdlet Set-Content
é usado para criar conteúdo de exemplo em um arquivo chamado Stream.txt
.
Set-Content -Path .\Stream.txt -Value 'This is the content of the Stream.txt file'
# Specify a wildcard to the Stream parameter to display all streams of the recently
# created file.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
# Retrieve the content of the primary stream.
# Note the single quotes to prevent variable substitution.
Get-Content -Path .\Stream.txt -Stream ':$DATA'
This is the content of the Stream.txt file
# Alternative way to get the same content.
Get-Content -Path .\Stream.txt -Stream ""
# The primary stream doesn't need to be specified to get the primary stream of the file.
# This gets the same data as the prior two examples.
Get-Content -Path .\Stream.txt
This is the content of the Stream.txt file
# Use the Stream parameter of Add-Content to create a new Stream containing sample
# content.
$addContentSplat = @{
Path = '.\Stream.txt'
Stream = 'NewStream'
Value = 'Added a stream named NewStream to Stream.txt'
}
Add-Content @addContentSplat
# Use Get-Item to verify the stream was created.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt:NewStream
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt:NewStream
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : NewStream
Length : 46
# Retrieve the content of your newly created Stream.
Get-Content -Path .\Stream.txt -Stream NewStream
Added a stream named NewStream to Stream.txt
O parâmetro Stream é um parâmetro dinâmico do provedor FileSystem.
Por padrão, Get-Content
recupera apenas dados do fluxo padrão ou :$DATA
.
Streams podem ser usados para armazenar dados ocultos, como atributos, configurações de segurança ou outros dados. Eles também podem ser armazenados em diretórios sem serem itens filho.
Exemplo 6: Obter conteúdo bruto
Os comandos neste exemplo obtêm o conteúdo de um arquivo como uma cadeia de caracteres, em vez de uma matriz de cadeias de caracteres. Por padrão, sem o parâmetro dinâmico Raw, o conteúdo é retornado como uma matriz de cadeias de caracteres delimitadas por nova linha. Este exemplo usa o arquivo LineNumbers.txt
referenciado no Exemplo 1.
$raw = Get-Content -Path .\LineNumbers.txt -Raw
$lines = Get-Content -Path .\LineNumbers.txt
Write-Host "Raw contains $($raw.Count) lines."
Write-Host "Lines contains $($lines.Count) lines."
Raw contains 1 lines.
Lines contains 100 lines.
Exemplo 7: usar filtros com Get-Content
Você pode especificar um filtro para o cmdlet Get-Content
. Ao usar filtros para qualificar o parâmetro Path, você precisa incluir um asterisco à direita (*
) para indicar o conteúdo do caminho.
O comando a seguir obtém o conteúdo de todos os arquivos *.log
no diretório C:\Temp
.
Get-Content -Path C:\Temp\* -Filter *.log
Exemplo 8: Obter conteúdo do arquivo como uma matriz de bytes
Este exemplo demonstra como obter o conteúdo de um arquivo como um [byte[]]
como um único objeto.
$byteArray = Get-Content -Path C:\temp\test.txt -AsByteStream -Raw
Get-Member -InputObject $byteArray
TypeName: System.Byte[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Add Method int IList.Add(System.Object value)
O primeiro comando usa o parâmetro AsByteStream para obter o fluxo de bytes do arquivo. O parâmetro Raw garante que os bytes sejam retornados como um [System.Byte[]]
. Se o parâmetro Raw estiver ausente, o valor retornado será um fluxo de bytes, que é interpretado pelo PowerShell como [System.Object[]]
.
Parâmetros
-AsByteStream
Especifica que o conteúdo deve ser lido como um fluxo de bytes. O parâmetro asByteStream foi introduzido no Windows PowerShell 6.0.
Um aviso ocorre quando você usa o parâmetro asByteStream com o parâmetro de codificação. O parâmetro AsByteStream ignora qualquer codificação e a saída é retornada como um fluxo de bytes.
Ao ler e gravar em arquivos binários, use o parâmetro AsByteStream e um valor de 0 para o parâmetro ReadCount. Um readCount valor de 0 lê o arquivo inteiro em uma única operação de leitura. O valor de ReadCount padrão, 1, lê um byte em cada operação de leitura e converte cada byte em um objeto separado. A canalização da saída de byte único para Set-Content
causa erros, a menos que você use o parâmetro AsByteStream com Set-Content
.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Credential
Nota
Esse parâmetro não tem suporte de nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar este cmdlet, use Invoke-Command.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | Current user |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Delimiter
Especifica o delimitador que Get-Content
usa para dividir o arquivo em objetos enquanto ele lê. O padrão é \n
, o caractere de fim de linha. Ao ler um arquivo de texto, Get-Content
retorna uma coleção de objetos de cadeia de caracteres, cada um terminando com um caractere de fim de linha. Quando você insere um delimitador que não existe no arquivo, Get-Content
retorna todo o arquivo como um único objeto não otimizado.
Você pode usar esse parâmetro para dividir um arquivo grande em arquivos menores especificando um separador de arquivo, como o delimitador. O delimitador é preservado (não descartado) e se torna o último item em cada seção de arquivo.
Delimiter é um parâmetro dinâmico que o provedor FileSystem adiciona ao cmdlet Get-Content
. Esse parâmetro funciona apenas em unidades do sistema de arquivos.
Nota
Atualmente, quando o valor do parâmetro Delimitador é uma cadeia de caracteres vazia, Get-Content
não retorna nada. Esse é um problema conhecido. Para forçar Get-Content
retornar todo o arquivo como uma única cadeia de caracteres não otimizada. Insira um valor que não existe no arquivo.
Tipo: | String |
Cargo: | Named |
Valor padrão: | End-of-line character |
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 esse 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 vigente. Essa opção foi adicionada ao PowerShell 7.4. -
bigendianunicode
: codifica em formato UTF-16 usando a ordem de byte big-endian. -
bigendianutf32
: codifica em formato UTF-32 usando a ordem de byte big-endian. -
oem
: usa a codificação padrão para MS-DOS e programas de console. -
unicode
: codifica em formato UTF-16 usando a ordem de byte little-endian. -
utf7
: codifica em formato UTF-7. -
utf8
: codifica em formato UTF-8. -
utf8BOM
: codifica em formato UTF-8 com BOM (marca de ordem de byte) -
utf8NoBOM
: codifica no formato UTF-8 sem Byte Order Mark (BOM) -
utf32
: codifica em formato UTF-32.
A codificação é um parâmetro dinâmico que o provedor FileSystem adiciona ao cmdlet Get-Content
.
Esse parâmetro só está disponível em unidades do sistema de arquivos.
A partir do PowerShell 6.2, o parâmetro de codificação de
A partir do PowerShell 7.4, você pode usar o valor Ansi
para o parâmetro de Codificação para passar o ID numérico da página de código ANSI da cultura atual sem precisar especificá-lo manualmente.
Nota
UTF-7 * não é mais recomendável usar. A partir do PowerShell 7.1, um aviso será gravado se você especificar utf7
para o parâmetro de 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
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet exclui na operação. 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.
O parâmetro Excluir só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*
, em que o caractere curinga especifica o conteúdo do diretório C:\Windows
.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-Filter
Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que dá suporte ao uso de filtros. Você pode encontrar a sintaxe da linguagem de filtragem FileSystem no about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, pois o provedor os aplica quando o cmdlet obtém os objetos em vez de fazer o PowerShell filtrar os objetos depois que eles são recuperados.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-Force
Forçar pode substituir um atributo somente leitura ou criar diretórios para concluir um caminho de arquivo. O parâmetro Force não tenta alterar permissões de arquivo nem substituir restrições de segurança.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Include
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet inclui na operação. 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. O parâmetro Include só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*
, em que o caractere curinga especifica o conteúdo do diretório C:\Windows
.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-LiteralPath
Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples permitem que o PowerShell não interprete qualquer 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 |
-Path
Especifica o caminho para um item em que Get-Content
obtém o conteúdo. Caracteres curinga são permitidos. Os caminhos devem ser caminhos para itens, não para contêineres. Por exemplo, você deve especificar um caminho para um ou mais arquivos, não um caminho para um diretório.
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-Raw
Ignora caracteres de nova linha e retorna todo o conteúdo de um arquivo em uma cadeia de caracteres com as novas linhas preservadas. Por padrão, os caracteres de nova linha em um arquivo são usados como delimitadores para separar a entrada em uma matriz de cadeias de caracteres. Esse parâmetro foi introduzido no PowerShell 3.0.
raw é um parâmetro dinâmico que o provedor FileSystem adiciona ao cmdlet Get-Content
esse parâmetro funciona apenas em unidades do sistema de arquivos.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ReadCount
Especifica quantas linhas de conteúdo são enviadas por meio do pipeline de cada vez. O valor padrão é 1. Um valor de 0 (zero) ou números negativos envia todo o conteúdo ao mesmo tempo.
Esse parâmetro não altera o conteúdo exibido, mas afeta o tempo necessário para exibir o conteúdo. À medida que o valor de de Leitura aumenta, o tempo necessário para retornar a primeira linha aumenta, mas o tempo total da operação diminui. Isso pode fazer uma diferença perceptível em itens grandes.
Tipo: | Int64 |
Cargo: | Named |
Valor padrão: | 1 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Stream
Nota
Esse parâmetro só está disponível no Windows.
Obtém o conteúdo do fluxo de arquivos NTFS alternativo especificado do arquivo. Insira o nome do fluxo. Não há suporte para curingas.
Stream é um parâmetro dinâmico que o provedor FileSystem adiciona ao cmdlet Get-Content
.
Esse parâmetro funciona apenas em unidades do sistema de arquivos em sistemas Windows.
Esse parâmetro foi introduzido no Windows PowerShell 3.0. No PowerShell 7.2, Get-Content
pode recuperar o conteúdo de fluxos de dados alternativos de diretórios, bem como arquivos.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Tail
Especifica o número de linhas do final de um arquivo ou outro item. Você pode usar o nome do parâmetro Tail ou seu alias, Last. Um valor de 0
não retorna linhas. Valores negativos causam um erro.
Esse parâmetro foi introduzido no PowerShell 3.0.
Tipo: | Int32 |
Aliases: | Last |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-TotalCount
Especifica o número de linhas desde o início de um arquivo ou outro item. Um valor de 0
não retorna linhas. Valores negativos causam um erro.
Você pode usar o nome do parâmetro TotalCount ou seus aliases, First ou Head.
Tipo: | Int64 |
Aliases: | First, Head |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Wait
Faz com que o cmdlet aguarde indefinidamente, mantendo o arquivo aberto até ser interrompido. Enquanto aguarda, Get-Content
verifica o arquivo uma vez por segundo e gera novas linhas, se estiverem presentes. Quando usado com o parâmetro TotalCount, Get-Content
aguarda até que o número especificado de linhas esteja disponível no arquivo especificado. Por exemplo, se você especificar um TotalCount de 10 e o arquivo já tiver 10 ou mais linhas, Get-Content
retornará as 10 linhas e sairá. Se o arquivo tiver menos de 10 linhas, Get-Content
produzirá cada linha à medida que chegar, mas aguardará até que a décima linha chegue antes de sair.
Você pode interromper de Espera pressionando Ctrl+C. Excluir o arquivo causa um erro de não terminação que também interrompe a espera.
Wait é um parâmetro dinâmico que o provedor FileSystem adiciona ao cmdlet Get-Content
. Esse parâmetro funciona apenas em unidades do sistema de arquivos.
Espera não pode ser combinado com raw.
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 a contagem de leitura ou a contagem total para este cmdlet.
String[]
Você pode redirecionar caminhos para este cmdlet.
Você pode redirecionar credenciais para este cmdlet.
Saídas
Quando você usa o parâmetro AsByteStream, esse cmdlet retorna o conteúdo como bytes.
Por padrão, esse cmdlet retorna o conteúdo como uma matriz de cadeias de caracteres, uma por linha. Quando você usa o parâmetro Raw, ele retorna uma única cadeia de caracteres contendo todas as linhas do arquivo.
Observações
O PowerShell inclui os seguintes aliases para Get-Content
:
- Todas as plataformas:
gc
type
- Windows:
cat
O cmdlet Get-Content
foi projetado para trabalhar com os dados expostos por qualquer provedor. Para obter os provedores em sua sessão, use o cmdlet Get-PSProvider
. Para obter mais informações, consulte about_Providers.