Gravar o resultado num ficheiro de texto Em PowerShell

comparei dois ficheiros usando o seguinte código:

Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) 

Como posso escrever o resultado disto num novo ficheiro de texto? Tentei usar um comando echo, mas não entendo a sintaxe.

Author: Peter Mortensen, 2013-08-27

3 answers

Utilize o Out-File cmdlet

 Compare-Object ... | Out-File C:\filename.txt

Opcionalmente, adicionar -Encoding utf8 a Out-File, dado que a codificação por omissão não é realmente ideal para muitos usos.

 96
Author: manojlds, 2013-08-27 15:12:16

A maneira mais simples é redireccionar a saída, assim:

Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) > c:\user\documents\diff_output.txt

> fará com que o ficheiro de saída seja substituído se já existir.
>> irá adicionar texto novo ao fim do ficheiro de saída, se já existir.

 21
Author: Matt, 2013-08-27 15:11:08

Outra forma de conseguir isto é usando os comandos Start-Transcript e Stop-Transcript, respectivamente, antes e depois da execução do comando. Isto iria capturar toda a sessão, incluindo comandos.

Start-Transcript

Stop-Transcript

Para este caso em particular Out-File é provavelmente a tua melhor aposta.

 5
Author: Aaron Krone, 2018-07-17 21:49:58