Get-Content
Obtém o conteúdo do item no local especificado.
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-UseTransaction]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <String>]
[<CommonParameters>]
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-UseTransaction]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <String>]
[<CommonParameters>]
O Get-Content
cmdlet 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 é possível obter um número especificado de linhas do início ou do fim de um item.
Este exemplo obtém o conteúdo de um arquivo no diretório atual. O LineNumbers.txt
arquivo tem 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 ForEach-Object
cmdlet. ForEach-Object
usa um bloco de script com o Add-Content
cmdlet para criar o LineNumbers.txt
arquivo. A variável $_
representa os valores da matriz à medida que cada objeto é enviado pelo pipeline. O Get-Content
cmdlet usa o parâmetro Path para especificar o LineNumbers.txt
arquivo e exibe o conteúdo no console do PowerShell.
Este comando obtém as primeiras cinco 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
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 LineNumbers.txt
arquivo mencionado no Exemplo 1.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
O Get-Content
comando é colocado entre parênteses para que seja concluído antes de ir para a próxima etapa. Get-Content
Retorna 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 [-1]
índice especifica o último índice na matriz retornada de 25 linhas recuperadas.
Este comando obtém a última linha de conteúdo de um arquivo. Este exemplo usa o LineNumbers.txt
arquivo que foi criado no Exemplo 1.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
Este exemplo usa o Get-Item
cmdlet para demonstrar que você pode canalizar 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 [-1]
índice.
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 Set-Content
cmdlet é 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 padrão ou :$DATA
fluxo. Os fluxos podem ser usados para armazenar dados ocultos, como atributos, configurações de segurança ou outros dados.
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 novas linhas. Este exemplo usa o LineNumbers.txt
arquivo mencionado 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.
Você pode especificar um filtro para o Get-Content
cmdlet. 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 *.log
arquivos no C:\Temp
diretório.
Get-Content -Path C:\Temp\* -Filter *.log
Este exemplo demonstra como obter o conteúdo de um arquivo como um [byte[]]
ú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[]]
arquivo . Se o parâmetro Raw estava ausente, o valor de retorno é um fluxo de bytes, que é interpretado pelo PowerShell como [System.Object[]]
.
Nota
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.
Tipo: | PSCredential |
Position: | Named |
Default value: | Current user |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
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 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 FileSystem adiciona ao Get-Content
cmdlet. Este parâmetro funciona apenas em unidades do sistema de arquivos.
Nota
Atualmente, quando o valor do parâmetro Delimiter é uma cadeia de caracteres vazia, Get-Content
não retorna nada. Trata-se de um problema conhecido. Para forçar Get-Content
o retorno de todo o arquivo como uma única cadeia de caracteres não delimitada. Insira um valor que não existe no arquivo.
Tipo: | String |
Position: | Named |
Default value: | End-of-line character |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Especifica o tipo de codificação para o arquivo de destino. O valor predefinido é 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
O mesmo queUnicode
.Unicode
Usa UTF-16 com a ordem de bytes little-endian.Unknown
O mesmo queUnicode
.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 FileSystem adiciona ao Get-Content
cmdlet.
Este parâmetro funciona apenas em unidades 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 de 0 para o parâmetro ReadCount. Um valor ReadCount de 0 lê todo o arquivo em uma única operação de leitura e o converte em um único objeto (PSObject). O valor ReadCount padrão, 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 Set-Content
cmdlet para gravar os bytes em um arquivo.
Tipo: | FileSystemCmdletProviderEncoding |
Valores aceites: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | Named |
Default value: | Default |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
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 Exclude é efetivo somente quando o comando inclui o conteúdo de um item, como , onde C:\Windows\*
o caractere curinga especifica o C:\Windows
conteúdo do diretório.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
Especifica um filtro para qualificar o parâmetro Path . O provedor FileSystem é o único provedor PowerShell instalado que oferece suporte ao uso de filtros. Você pode encontrar a sintaxe para a linguagem de filtro FileSystem 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.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
Force 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 ou substituir restrições de segurança.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
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ó é efetivo quando o comando inclui o conteúdo de um item, como , onde C:\Windows\*
o caractere curinga especifica o C:\Windows
conteúdo do diretório.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
Especifica um caminho para um ou mais locais. O valor de 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 |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
Especifica o caminho para um item onde 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[] |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | True |
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 Esse parâmetro funciona apenas em unidades do Get-Content
sistema de arquivos.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Especifica quantas linhas de conteúdo são enviadas pelo pipeline de cada vez. O valor predefinido é 1. Um valor de 0 (zero) ou números negativos 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.
Tipo: | Int64 |
Position: | Named |
Default value: | 1 |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
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 Get-Content
cmdlet.
Este parâmetro funciona apenas em unidades de sistema de arquivos em sistemas Windows.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
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. Os valores negativos fazem com que o cmdlet retorne todo o conteúdo.
Esse parâmetro foi introduzido no PowerShell 3.0.
Tipo: | Int32 |
Aliases: | Last |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
Especifica o número de linhas desde o início de um arquivo ou outro item. Os valores negativos fazem com que o cmdlet retorne todo o conteúdo.
Você pode usar o nome do parâmetro TotalCount ou seus aliases, First ou Head.
Tipo: | Int64 |
Aliases: | First, Head |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
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.
Tipo: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Faz com que o cmdlet aguarde indefinidamente, mantendo o arquivo aberto, até ser interrompido. Enquanto espera, verifica o arquivo uma vez por segundo e gera novas linhas, Get-Content
se presente. 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 sai. Se o arquivo tiver menos de 10 linhas, Get-Content
a saída de cada linha à medida que ela chega, mas aguarda até que a décima linha chegue antes de sair.
Você pode interromper Wait pressionando Ctrl+C. A exclusão do arquivo causa um erro de não encerramento que também interrompe a espera.
Wait é um parâmetro dinâmico que o provedor FileSystem adiciona ao Get-Content
cmdlet. Este parâmetro funciona apenas em unidades do sistema de arquivos. A espera não pode ser combinada com o Raw.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Você pode canalizar a contagem de leitura ou a contagem total para este cmdlet.
String[]
Você pode canalizar caminhos para esse cmdlet.
Você pode canalizar credenciais para esse cmdlet.
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.
O Windows PowerShell inclui os seguintes aliases para Get-Content
:
cat
gc
type
O Get-Content
cmdlet foi projetado para trabalhar com os dados expostos por qualquer provedor. Para obter os provedores em sua sessão, use o Get-PSProvider
cmdlet. Para obter mais informações, consulte about_Providers.
Comentários do PowerShell
O PowerShell é um projeto código aberto. Selecione um link para fornecer comentários: