Comparing Objects can be done by using
Compare-Object in Powershell. Problem arise when you start comparing text files.
Compare-Object Cmdlet in Powershell works wonderfully when comparing simple Powershell Objects.
λ Compare-Object $a $b -IncludeEqual InputObject SideIndicator ----------- ------------- CN=inherittest2,OU=SubOU1,OU=User1,OU=InheritTest,OU=Testumgebung,,DC=test,DC=invalid => CN=inherittest1,OU=User1,OU=InheritTest,OU=Testumgebung,DC=test,DC=invalid <=
The problem with this appears when comparing text files:
λ Compare-Object $(gc a.txt) $(gc b.txt) -IncludeEqual InputObject SideIndicator ----------- ------------- a == b == d == x => c <=
This tells me there is a difference but not where.
Searching the mighty internet brought me this:
Special-purpose file comparison tools have lots of tricks to compare files efficiently and logically, but PowerShell does let you implement a basic file comparison through a special trick – realizing that the Get-Content cmdlet tags its output objects with the line number they came from.
Which helps immensely. So I wrote a quick and dirty side-by-comparison for files:
With this the above comparison looks like this:
λ C:\Users\jschpp\Desktop\diff.ps1 a.txt b.txt Line Left Right ---- ---- ----- 3 c x