16

我需要进行文件比较并想使用 Powershell。我需要一个列出所有差异的输出文件。下面是一个好的开始,但我需要文件包含行号,并且生成的输入对象当前在 89 个字符后也被截断 - 我需要显示整行:

compare-object (get-content $File1) (get-content $File2) | Out-File $Location
4

6 回答 6

16

输入对象被默认显示截断。要将整行保存到文件中:

compare-object (get-content $File1) (get-content $File2) | format-list | Out-File $Location
于 2013-10-16T12:21:57.013 回答
6
$abc = gc .\z.txt | %{$i = 1} { new-object psobject -prop @{LineNum=$i;Text=$_}; $i++}
$cde = gc .\x.txt | %{$i = 1} { new-object psobject -prop @{LineNum=$i;Text=$_}; $i++}
Compare-Object $abc $cde -Property Text -PassThru -IncludeEqual

试试这个吐出行号。

于 2015-10-21T07:27:56.530 回答
2

我使用了这个答案https://serverfault.com/a/951843。在我看来,它提供了更有用的输出:

  • 包含行号
  • 按行号排序
  • 也只是使用 powershell 命令
于 2019-06-12T15:25:01.440 回答
2
$apples = Get-Content D:\misc\1.txt
$oranges = Get-Content D:\misc\2.txt

Compare-Object -ReferenceObject $apples -DifferenceObject $oranges -PassThru | Out-File D:\misc\mm.csv
于 2019-03-20T08:27:30.970 回答
1

我使用以下内容将整行保存在文件中

比较对象 -referenceObject $(Get-Content $File1) -differenceObject $(Get-Content $File2) | %{$_.Inputobject + $_.SideIndicator} | 英尺-自动 | 输出文件 $Location -width 5000
于 2017-02-27T22:56:03.247 回答
1
$result= Compare-Object -ReferenceObject $(Get-Content D:\demo\misc\1.txt) -DifferenceObject $(Get-Content D:\demo\misc\1.txt) | Select -Property InputObject 
$result.InputObject

使用上面的代码来获得 2 个文件的差异

于 2019-04-03T08:25:49.210 回答