When you’re working in PowerShell, it is common to work with
collections of objects. Most PowerShell commands generate objects, as do
many of the methods that you work with in the .NET Framework. To help you
work with these object collections, PowerShell introduces the
Compare-Object cmdlet. The
Compare-Object cmdlet provides functionality
similar to the well-known
commands, but with an object-oriented flavor.
You want to compare the output of two commands.
To compare the output of two commands, store
the output of each command in variables, and then use the
Compare-Object cmdlet to compare those
PS > notepad PS > $processes = Get-Process PS > Stop-Process -ProcessName Notepad PS > $newProcesses = Get-Process PS > Compare-Object $processes $newProcesses InputObject SideIndicator ----------- ------------- System.Diagnostics.Process (notepad) <=
The Solution shows how to determine which
processes have exited between the two calls to
<= tells us that the process was present in
the left collection (
not in the right (
work with the actual object that was different, access the
PS > $diff = @(Compare-Object $processes $newProcesses) PS > $process = $diff.InputObject PS > $process.Handles 55
By default, the
Compare-Object cmdlet uses the comparison functionality built into most .NET objects. ...