2013-03-18 75 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

這確實的東西,如果空:

​​