Compare-Object on $null array

11,385

Solution 1

Help on Compare-object says:

If the reference set or the difference set is null ($null), Compare-Object generates a terminating error.

So your only options would seem to be a trap or try/catch.

Solution 2

This accepts null values:

Compare-Object -ReferenceObject @($Value1 | Select-Object) -DifferenceObject @($Value2 | Select-Object)

Solution 3

 if($Value1 -eq $NULL){
     return
 }
 Compare-Object -ReferenceObject $Value1 -DifferenceObject $Value2 

Solution 4

This does something if null:

if ($Value1 -ne $null -and $Value2 -ne $null) {
    Compare-Object -ReferenceObject $Value1 -DifferenceObject $Value2
}
else {
    #do something
}
Share:
11,385
ScriptingBerry
Author by

ScriptingBerry

Updated on July 28, 2022

Comments

  • ScriptingBerry
    ScriptingBerry over 1 year

    Is there a way for the Compare-Object cmdlet to anticipate on $Null values?

    For example when I'm trying to compare 2 values like this:

    Compare-Object -ReferenceObject $Value1 -DifferenceObject $Value2 
    

    I commonly get the following error:

    Cannot bind argument to parameter 'ReferenceObject' because it is null
    

    My question is: Is there a way to say: if either one of them equals $null ; do something