$ null数组上的Compare-Object

Scr*_*rry 3 powershell compare object

有没有一种方法使Compare-Object cmdlet可以预期$ Null值?

例如,当我尝试比较两个值时:

Compare-Object -ReferenceObject $Value1 -DifferenceObject $Value2 
Run Code Online (Sandbox Code Playgroud)

我通常会收到以下错误:

Cannot bind argument to parameter 'ReferenceObject' because it is null
Run Code Online (Sandbox Code Playgroud)

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

Aar*_*ron 6

这接受空值:

Compare-Object -ReferenceObject @($Value1 | Select-Object) -DifferenceObject @($Value2 | Select-Object)
Run Code Online (Sandbox Code Playgroud)

  • 这对我正在寻找的东西非常有效。我从 AD 导入,但如果数组为空,我会出错。如果是这种情况,我想得到 object 与 object2 (null) 不同的结果。这在一个简单的庄园中完成,而无需为对象编写评估案例。 (2认同)

mjo*_*nor 5

比较对象的帮助说:

如果引用集或差异集为空($null),Compare-Object 将生成终止错误。

因此,您唯一的选择似乎是陷阱或尝试/捕获。