【发布时间】:2013-08-30 10:00:38
【问题描述】:
我使用以下代码比较了两个文件:
Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt)
如何将其输出写入新的文本文件?我尝试过使用 echo 命令,但我不太了解语法。
【问题讨论】:
标签: powershell file-io
我使用以下代码比较了两个文件:
Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt)
如何将其输出写入新的文本文件?我尝试过使用 echo 命令,但我不太了解语法。
【问题讨论】:
标签: powershell file-io
使用Out-File cmdlet
Compare-Object ... | Out-File C:\filename.txt
(可选)将-Encoding utf8 添加到Out-File,因为默认编码对于许多用途而言并不理想。
【讨论】:
最简单的方法是重定向输出,如下所示:
Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) > c:\user\documents\diff_output.txt
> 将导致输出文件在已存在时被覆盖。>> 将在输出文件的末尾追加新文本(如果已存在)。
【讨论】:
实现此目的的另一种方法是分别在命令执行之前和之后使用Start-Transcript 和Stop-Transcript 命令。这将捕获包括命令在内的整个会话。
对于这种特殊情况,Out-File 可能是您最好的选择。
【讨论】: