powershellscripts.com

Tutorials  PowerShell Cmdlet Help for Compare-Object



NAME
Compare-Object

SYNOPSIS
Compares two sets of objects.

SYNTAX
Compare-Object [-ReferenceObject] [-DifferenceObject] [-CaseSensitive] [-Culture
] [-ExcludeDifferent] [-IncludeEqual] [-PassThru] [-Property ] [-SyncWindow ] []


DESCRIPTION
The Compare-Object cmdlet compares two sets of objects. One set of objects is the Reference set, and the other set
is the Difference set.

The result of the comparison indicates whether a property value appeared only in the object from the Reference set
(indicated by the <= symbol), only in the object from the Difference set (indicated by the => symbol) or, if the In
cludeEqual parameter is specified, in both objects (indicated by the == symbol).


PARAMETERS
-CaseSensitive []
Indicates that comparisons should be case-sensitive.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false

-Culture
Specifies the culture to use for comparisons.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false

-DifferenceObject
Specifies the objects that are compared to the reference objects.

Required? true
Position? 2
Default value
Accept pipeline input? true (ByValue)
Accept wildcard characters? false

-ExcludeDifferent []
Displays only the characteristics of compared objects that are equal.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false

-IncludeEqual []
Displays characteristics of compared objects that are equal. By default, only characteristics that differ betwe
en the reference and difference objects are displayed.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false

-PassThru []
Passes the objects that differed to the pipeline. By default, this cmdlet does not generate any output.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false

-Property
Specifies the properties of the reference and difference objects to compare.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false

-ReferenceObject
Objects used as a reference for comparison.

Required? true
Position? 1
Default value
Accept pipeline input? false
Accept wildcard characters? false

-SyncWindow
Defines a search region in which an attempt is made to re-synchronize the order if there is no match. The defau
lt value is [Int32]::MaxValue.

Required? false
Position? named
Default value [Int32]::MaxValue
Accept pipeline input? false
Accept wildcard characters? false


This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer and OutVariable. For more information, type,
"get-help about_commonparameters".

INPUTS
System.Management.Automation.PSObject
You can pipe a DifferenceObject object to Compare-Object.


OUTPUTS
None, or the objects that are different
When you use the PassThru parameter, Compare-Object returns the objects that differed. Otherwise, this cmdlet d
oes not generate any output.


NOTES





-------------------------- EXAMPLE 1 --------------------------

C:\PS>compare-object -referenceobject $(get-content C:\test\testfile1.txt) -differenceobject $(get-content C:\test\
testfile2.txt)


Description
-----------
This command compares the contents of two text files. It displays only the lines that appear in one file or in the
other file, not lines that appear in both files.





-------------------------- EXAMPLE 2 --------------------------

C:\PS>compare-object -referenceobject $(get-content C:\Test\testfile1.txt) -differenceobject $(get-content C:\Test\
testfile2.txt) -includeequal


Description
-----------
This command compares each line of content in two text files. It displays all lines of content from both files, ind
icating whether each line appears in only Textfile1.txt or Textfile2.txt or whether each line appears in both files
.





-------------------------- EXAMPLE 3 --------------------------

C:\PS>$processes_before = get-process

C:\PS> notepad

C:\PS> $processes_after = get-process

C:\PS> compare-object -referenceobject $processes_before -differenceobject $processes_after


Description
-----------
These commands compare two sets of process objects.

The first command uses the Get-Process cmdlet to get the processes on the computer. It stores them in the $processe
s_before variable.

The second command starts Notepad.

The third command uses the Get-Process cmdlet again and stores the resulting processes in the $processes_after vari
able.

The fourth command uses the Compare-Object cmdlet to compare the two sets of process objects. It displaysthe differ
ences between them, which include the new instance of Notepad.






RELATED LINKS
Online version: http://go.microsoft.com/fwlink/?LinkID=113286
Group-Object
Measure-Object
Sort-Object
ForEach-Object
New-Object
Select-Object
Tee-Object
Where-Object