Se você está procurando por um cmdlet do PowerShell que possa armazenar a saída em um arquivo de texto, está com sorte. Você está prestes a aprender como usar o cmdlet Out-File
do PowerShell junto com seu popular parâmetro Out-File -Append
também!
Como Funciona o Out-File?
Este cmdlet do PowerShell é simples por natureza; seu único propósito é armazenar a saída recebida e salvá-la em um arquivo de texto.
Foi projetado para substituir o operador de redirecionamento de saída padrão (>
). Mesmo nos dias do DOS, podíamos redirecionar a saída para um arquivo. Este cmdlet é a maneira do PowerShell de fazer isso.
O cmdlet Out-File
é tipicamente usado no final do pipeline do PowerShell. Seu único propósito é enviar a saída bruta diretamente para um arquivo de texto sem consideração. Existem formas mínimas de ajustar como essa saída é escrita.
Enviando Saída para um Arquivo
Vamos dizer que você tenha um script que retorna uma lista de todos os serviços do Windows em seu computador. Quando você executa Get-Service
, receberá todos os objetos que espera no console.
Mas talvez você queira salvar essa saída em um arquivo de texto. O cmdlet Out-File
é uma ótima maneira de fazer isso. Você pode usá-lo encadeando praticamente qualquer coisa para ele via pipeline.
Você pode ver abaixo que a saída do Get-Service
foi enviada para o cmdlet que criou um arquivo de texto chamado Services.txt que contém exatamente o que você vê no console.
Acrescentando a um Arquivo
Por padrão, ele sobrescreve qualquer coisa no arquivo de texto fornecido pelo parâmetro FilePath
. No entanto, você pode substituir esse comportamento usando o parâmetro Append
.
Talvez você esteja acumulando saída de console em um arquivo e gostaria de acrescentar texto a um arquivo em vez de sobrescrever. O parâmetro Append
é seu melhor amigo.
Usando o parâmetro Out-File -Append
, como você pode ver abaixo, observe que se você não o usar, o C:\File.txt é sobrescrito. Mas, assim que você adicionar o parâmetro Append
, ele acrescenta a saída ao final.
Alterando a Saída
Por padrão, este cmdlet tentará replicar o que é mostrado no console, mas há algumas maneiras de manipulá-lo. Por exemplo, o cmdlet possui um parâmetro NoNewLine
que simplesmente remove todos os caracteres de nova linha.
Ou, você pode cortar o texto em cada linha em um determinado número de caracteres também com o parâmetro Width
.
Conclusão

Em um cenário do mundo real, este cmdlet funciona, mas existem maneiras melhores de armazenar a saída em um arquivo.
Este cmdlet não oferece opções reais para manipular a saída. Simplesmente salva a saída exatamente como mostrado no console. Este cmdlet é semelhante a uma transcrição do PowerShell que apenas escreve tudo diretamente em um arquivo de texto.
Os cmdlets Add-Content
ou Set-Content
sempre terão mais flexibilidade, mas se você precisar de uma maneira rápida de enviar a saída do PowerShell para um arquivo, Out-File
é o caminho a percorrer.
Relacionado: Set-Content: A Maneira PowerShell de Escrever em um Arquivo