将输出写入PowerShell中的文本文件

时间:2013-08-27 15:03:14

标签: powershell file-io

我使用以下代码比较了两个文件:

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

如何将此输出写入新文本文件?我尝试过使用echo命令,但我真的不懂语法。

3 个答案:

答案 0 :(得分:85)

使用Out-File cmdlet

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

或者,将-Encoding utf8添加到Out-File,因为默认编码并非适用于多种用途。

答案 1 :(得分:19)

最简单的方法是重定向输出,如下所示:

Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) > c:\user\documents\diff_output.txt
如果输出文件已存在,

>将导致输出文件被覆盖 如果输出文件已经存在,>>会将新文本附加到输出文件的末尾。

答案 2 :(得分:3)

另一种可以实现此目的的方法是在命令执行之前和之后分别使用Start-TranscriptStop-Transcript命令。这将捕获整个会话,包括命令。

Start-Transcript

Stop-Transcript

在这种情况下,Out-File可能是您最好的选择。