I’ve found this code on the PowerGui Forum. It’s a great PowerShell Script to compare files. I’ve made a small modification to it so items in both files don’t required to be sorted.
[codesyntax lang="powershell"]
$csv1 = import-csv D:\temp\name1.csv
$csv2 = import-csv D:\temp\name2.csv
$result1 = $(compare-object $csv1 $csv2 -IncludeEqual | where {$_.SideIndicator -eq "=="} | foreach {$_.InputObject}) | Sort-Object {$_.Name}
$result2 = $(compare-object $csv2 $csv1 -IncludeEqual | where {$_.SideIndicator -eq "=="} | foreach {$_.InputObject}) | Sort-Object {$_.Name}
$members1 = $csv1 | Get-Member -MemberType NoteProperty | foreach {$_.Name}
$members2 = $csv2 | Get-Member -MemberType NoteProperty | foreach {$_.Name}
$newMembers = $(compare-object $members1 $members2 | where {$_.SideIndicator -eq "=>"} | foreach {$_.InputObject})
for($i=0; $i -lt $newMembers.length; $i++)
{
$prop = $newMembers[$i]
$result1 | add-member noteproperty $prop $null
for($x=0; $x -lt $result1.length; $x++)
{
$newMembers | foreach {
$result1[$x].$prop = $result2[$x].$prop
}
}
}
$result1 | export-csv D:\temp\new.csv -NoTypeInformation
get-content D:\temp\new.csv
[/codesyntax]

