2016-11-29 108 views
2

就在我认为我知道PowerShell的时候,我想知道这里发生了什么。 Compare-Object适用于这两个示例,如果我不检查$ null,则第二个示例将返回差异,但我最糟糕的时间是进行简单比较。为什么第二个例子不返回错误为什么这个小小的PowerShell代码片段返回false?

(compare-object @(1,2,3) @(1,2,3)) -eq $null 

(compare-object @(1,2,3) @(1,2,3,4,5,6)) -eq $null 

(没有返回) - 我希望看到

回答

2

这是因为结果是一个数组,你应该检查计数以确定是否有内容:

((compare-object @(1,2,3) @(1,2,3)) | measure).count -gt 0 

((compare-object @(1,2,3) @(1,2,3, 4, 5, 6)) | measure).count -gt 0 
+2

我想这是那种我的问题与此 - 我需要打这个电话来衡量,对象,因为在第一个例子中,返回值是*不*数组,它只是$空。我现在看到,我的问题是用PS比较数组到$ null的有趣方式。 –