Como Exportar Saída para um Arquivo Usando PowerShell
-
Introdução ao comando
Out-Fileno PowerShell -
Use o parâmetro
-appendpara 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