Como Exportar Saída para um Arquivo Usando PowerShell
-
Introdução ao comando
Out-File
no PowerShell -
Use o parâmetro
-append
para adicionar a um arquivo no PowerShell - Altere os dados de saída no PowerShell

Vários linguagens de script têm funções ou métodos que permitem exportar dados para um arquivo. Mesmo nos primeiros dias do MS-DOS, o operador de redirecionamento legado (>
) pode fazer isso de forma conveniente.
Este artigo discutirá como exportar dados de saída para um arquivo, adicionar dados a um arquivo existente e manipular a saída usando PowerShell.
Introdução ao comando Out-File
no PowerShell
Vamos supor que você tenha um script que retorna uma lista de todos os serviços do Windows em seu computador. Quando executamos Get-Service
, você receberá todos os objetos que pode esperar no console.
Mas talvez queiramos salvar essa saída em um arquivo de texto. O comando Out-File
é uma ótima maneira de fazer isso.
Podemos usar Out-File
enviando quase qualquer coisa através do operador de pipeline. Abaixo, podemos ver que o script enviou a saída de Get-Service
para o cmdlet, que criou um arquivo de texto chamado Services.txt
contendo a mesma exibição no console.
Código de Exemplo:
Get-Service | Out-File -FilePath C:\PS\Services.txt
Get-Content C:\PS\Services.txt
Saída:
Status Name DisplayName
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
<SNIP>
Use o parâmetro -append
para adicionar a um arquivo no PowerShell
Por padrão, o comando Out-File
sobrescreve qualquer coisa no arquivo de texto fornecido através do parâmetro -FilePath
. No entanto, podemos substituir esse comportamento usando o parâmetro -Append
.
Talvez estejamos acumulando saída do console em um arquivo e gostaríamos de adicionar texto a um arquivo em vez de sobrescrever. O parâmetro -Append
é seu melhor amigo.
Se não usamos o parâmetro Out-File -Append
, o conteúdo de C:\PS\File.txt
é sobrescrito. Mas, assim que adicionamos o parâmetro -Append
, ele adiciona a saída ao final.
Código de Exemplo:
'firststring' | Out-File -FilePath C:\PS\File.txt
Get-Content -Path C:\PS\File.txt
'secondstring' | Out-File -FilePath C:\PS\File.txt -Append
Get-Content C:\PS\File.txt
Saída:
firststring
firststring
secondstring
Altere os dados de saída no PowerShell
Por padrão, este cmdlet tentará replicar o que é mostrado no console, mas há algumas maneiras de manipulá-lo. Por exemplo, o cmdlet tem um parâmetro -NoNewLine
que remove todos os caracteres de nova linha.
Código de Exemplo:
Get-Service | Out-File -FilePath C:\PS\Services.txt -NoNewline
Get-Content C:\PS\Services.txt
Saída:
Status Name DisplayName
------ ---- -----------
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application La
Ou, podemos cortar o texto em cada linha em uma contagem de caracteres particular com o parâmetro -Width
.
Código de Exemplo:
Get-Service | Out-File -FilePath C:\PS\Services.txt -Width 30
Get-Content C:\PS\Services.txt
Saída:
Status Name DisplayName
------ ----- -----------
Stopped AJRouter Al
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn