【问题标题】:Why doesn't this little PowerShell snippet return false? [duplicate]为什么这个小 PowerShell 片段不返回 false? [复制]
【发布时间】:2016-11-29 16:59:37
【问题描述】:

就在我以为我知道 PowerShell 的时候,我想知道这里发生了什么。 Compare-Object 适用于这两个示例,如果我不检查 $null,第二个示例将返回差异,但我在进行简单比较时遇到了最糟糕的情况。为什么第二个示例不返回 False

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

是的

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

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

【问题讨论】:

    标签: powershell


    【解决方案1】:

    这是因为结果是一个数组,你应该检查count来判断是否有内容:

    ((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
    

    【讨论】:

    • 我想这是我的问题 - 我需要调用 Measure-Object 因为在第一个示例中,返回值是 not 数组,它只是 $null。我现在看到我的问题在于 PS 将数组与 $null 进行比较的有趣方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多