60

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

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

如何将其输出写入新的文本文件?我试过使用 echo 命令,但我并不真正理解语法。

4

3 回答 3

98

使用Out-Filecmdlet

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

可选地,添加-Encoding utf8Out-File作为默认编码对于许多用途来说并不理想。

于 2013-08-27T15:12:16.100 回答
23

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

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

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

于 2013-08-27T15:11:08.567 回答
6

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

开始-成绩单

停止成绩单

对于这种特殊情况Out-File,可能是您最好的选择。

于 2018-07-17T21:49:58.733 回答