2013-03-18 55 views
2

比较对象cmdlet是否可以预测$ Null值?

例如,当我试图比较像这样2个值:

Compare-Object -ReferenceObject $Value1 -DifferenceObject $Value2 

我经常收到以下错误:

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

我的问题是:有没有办法说:如果其中任何一个等于$ null;做一些

+0

十字发布另一个答案: http://stackoverflow.com/questions/13504346/ powershell-compare-object-on-empty-folder – 2015-04-07 17:23:45

回答

4

说明比较对象上说:

如果基准设置或设置不同的是零($空),即比较对象产生终止错误。

所以你唯一的选择似乎是一个陷阱或尝试/赶上。

+0

干杯,用Try/Catch语句解决它。谢谢m8 – ScriptingBerry 2013-03-18 22:22:29

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

这将是一个更强大的答案,如果你解释它。 – 2013-03-19 20:30:16

+0

这只是尝试/捕捉的替代方案。如果第一个值为NULL,则停止。如果不为NULL,则可以比较对象。我不知道PS能够让这些尝试/捕捉短语发挥作用。 – 2013-03-21 05:10:00

2

此接受空值:

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

这确实的东西,如果空:

​​