Partilhar via


Get-Content

Obtém o conteúdo do item no local especificado.

Sintaxe

Path (Predefinição)

Get-Content
    [-Path] <string[]>
    [-ReadCount <long>]
    [-TotalCount <long>]
    [-Tail <int>]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-UseTransaction]
    [-Delimiter <string>]
    [-Wait]
    [-Raw]
    [-Encoding <FileSystemCmdletProviderEncoding>]
    [-Stream <string>]
    [<CommonParameters>]

LiteralPath

Get-Content
    -LiteralPath <string[]>
    [-ReadCount <long>]
    [-TotalCount <long>]
    [-Tail <int>]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-UseTransaction]
    [-Delimiter <string>]
    [-Wait]
    [-Raw]
    [-Encoding <FileSystemCmdletProviderEncoding>]
    [-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 dos quais representa uma linha de conteúdo.

A partir do PowerShell 3.0, Get-Content também pode obter um número especificado de linhas do início ou do fim de um item.

Exemplos

Exemplo 1: Obter o conteúdo de um ficheiro de texto

Este exemplo obtém o conteúdo de um arquivo no diretório atual. O arquivo LineNumbers.txt contém 100 linhas no formato, Esta é a Linha X e é usado 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 que Get-Content retorna

Este comando obtém as primeiras cinco linhas de um arquivo. O parâmetro TotalCount é usado para obter as cinco primeiras linhas de conteúdo. Este exemplo usa o arquivo LineNumbers.txt que foi criado 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 específica de conteúdo de um arquivo de texto

Este comando obtém um número específico de linhas de um arquivo e, em seguida, 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 que foi criado no Exemplo 1.

(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25

O comando Get-Content é colocado entre parênteses para que o comando seja concluído antes de ir para a próxima etapa. Get-Contentretorna uma matriz de linhas, isso permite que você adicione 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

Este comando obtém a primeira e 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 canalizar arquivos para o parâmetro 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 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 NTFS do Windows. 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, or $DATA stream.
Get-Content -Path .\Stream.txt -Stream $DATA
This is the content of the Stream.txt file
# Use the Stream parameter of Add-Content to create a new Stream containing sample content.
Add-Content -Path .\Stream.txt -Stream NewStream -Value 'Added a stream named NewStream to Stream.txt'
# 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 principal ou $DATA. Streams pode ser usado para armazenar dados ocultos, como atributos, configurações de segurança ou outros dados.

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 Raw dynamic, o conteúdo é retornado como uma matriz de cadeias de caracteres delimitadas por novas linhas. Este exemplo usa o arquivo LineNumbers.txt que foi criado 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 o 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 -Encoding Byte -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 Encoding 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 de retorno será um fluxo de bytes, que é interpretado pelo PowerShell como [System.Object[]].

Parâmetros

-Credential

Observação

Esse parâmetro não é suportado por nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar esse cmdlet, use Invoke-Command.

Propriedades dos parâmetros

Tipo:PSCredential
Default value:Current user
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 dos quais termina com um caractere de fim de linha. Quando você insere um delimitador que não existe no arquivo, Get-Content retorna o arquivo inteiro como um único objeto não delimitado.

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.

Delimitador é um parâmetro dinâmico que o provedor de FileSystem adiciona ao cmdlet Get-Content. Este parâmetro funciona apenas em unidades de disco do sistema de arquivos.

Observação

Atualmente, quando o valor do parâmetro Delimitador é uma cadeia de caracteres vazia, Get-Content não retorna nada. Este é um problema conhecido. Para forçar Get-Content a retornar o arquivo inteiro como uma única cadeia de caracteres não delimitada. Insira um valor que não existe no arquivo.

Propriedades dos parâmetros

Tipo:String
Default value:End-of-line character
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Encoding

Especifica o tipo de codificação para o arquivo de destino. O valor padrão é Default.

Os valores aceitáveis para este parâmetro são os seguintes:

  • ASCII usa o conjunto de caracteres ASCII (7 bits).
  • BigEndianUnicode usa UTF-16 com a ordem de bytes big-endian.
  • BigEndianUTF32 usa UTF-32 com a ordem de bytes big-endian.
  • Byte Codifica um conjunto de caracteres em uma sequência de bytes.
  • Default Usa a codificação que corresponde à página de código ativa do sistema (geralmente ANSI).
  • OEM Usa a codificação que corresponde à página de código OEM atual do sistema.
  • String mesmo que Unicode.
  • Unicode Usa UTF-16 com a ordem de bytes little-endian.
  • desconhecido mesmo que Unicode.
  • UTF7 usa UTF-7.
  • UTF8 usa UTF-8.
  • UTF32 Usa UTF-32 com a ordem de bytes little-endian.

A codificação é um parâmetro dinâmico que o provedor de FileSystem adiciona ao cmdlet Get-Content. Este parâmetro funciona apenas em unidades de disco do sistema de arquivos.

Ao ler e gravar em arquivos binários, use um valor de Byte para o parâmetro dinâmico Encoding e um valor 0 para o parâmetro ReadCount. Um ReadCount valor 0 lê o arquivo inteiro em uma única operação de leitura e o converte em um único objeto (PSObject). O valor padrão do ReadCount, 1, lê um byte em cada operação de leitura e converte cada byte em um objeto separado, o que causa erros quando você usa o cmdlet Set-Content para gravar os bytes em um arquivo.

Propriedades dos parâmetros

Tipo:FileSystemCmdletProviderEncoding
Default value:Default
Valores aceites:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 coringa são permitidos.

O parâmetro Exclude só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*, onde o caractere curinga especifica o conteúdo do diretório C:\Windows.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Filter

Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que oferece suporte ao uso de filtros. A sintaxe da linguagem de filtro do FileSystem pode ser encontrada em about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, porque o provedor os aplica quando o cmdlet obtém os objetos em vez de fazer com que o PowerShell filtre os objetos depois que eles são recuperados.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Force

Force 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 ou substituir restrições de segurança.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 coringa são permitidos. O parâmetro Include só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*, onde o caractere curinga especifica o conteúdo do diretório C:\Windows.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-LiteralPath

Especifica um caminho para um ou mais locais. O valor de LiteralPath é utilizado exatamente como foi escrito. Nenhum caractere é interpretado como carta curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape.

Para obter mais informações, consulte about_Quoting_Rules.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PSPath

Conjuntos de parâmetros

LiteralPath
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Path

Especifica o caminho para um item onde Get-Content obtém o conteúdo. Caracteres coringa 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.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

Path
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-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, 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 Este parâmetro funciona apenas em unidades do sistema de ficheiros.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-ReadCount

Especifica quantas linhas de conteúdo são enviadas pelo pipeline de cada vez. O valor padrão é 1. Um valor de 0 (zero) envia todo o conteúdo de uma só vez.

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 ReadCount aumenta, o tempo necessário para retornar a primeira linha aumenta, mas o tempo total para a operação diminui. Isso pode fazer uma diferença percetível em itens grandes.

Propriedades dos parâmetros

Tipo:Int64
Default value:1
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Stream

Obtém o conteúdo do fluxo de arquivo 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. Este parâmetro funciona apenas em unidades de sistema de arquivos em sistemas Windows. Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 o seu alias, Last. Esse parâmetro foi introduzido no PowerShell 3.0.

Propriedades dos parâmetros

Tipo:Int32
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:Último

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-TotalCount

Especifica o número de linhas desde o início de um arquivo ou outro item. O padrão é -1 (todas as linhas).

Pode usar o nome do parâmetro TotalCount ou os seus aliases, First ou Head.

Propriedades dos parâmetros

Tipo:Int64
Default value:-1
Suporta carateres universais:False
NãoMostrar:False
Aliases:Primeiro, Cabeça

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-UseTransaction

Inclui o comando na transação ativa. Este parâmetro é válido somente quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Usetx

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Wait

Mantém o arquivo aberto depois que todas as linhas existentes foram saídas. Enquanto espera, Get-Content verifica o arquivo uma vez a cada segundo e gera novas linhas, se presente. Você pode interromper Wait pressionando CTRL+C. A espera também termina se o arquivo for excluído, caso em que um erro não terminativo é relatado.

Wait é um parâmetro dinâmico que o provedor FileSystem adiciona ao cmdlet Get-Content. Este parâmetro funciona apenas em unidades de disco do sistema de arquivos. Aguarde não pode ser combinado com Raw.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

System.Int64, System.String

Você pode canalizar a contagem de leitura, a contagem total, os caminhos ou as credenciais para Get-Content.

Saídas

System.Byte, System.String

Get-Content retorna cadeias de caracteres ou bytes. O tipo de saída depende do tipo de conteúdo especificado como entrada.

Notas

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.