首页 > 解决方案 > 比较 Powershell 中的两个列表

问题描述

我刚刚开始研究powershell。我有两个分别包含 132 和 134 条记录的列表。它们共有 85 条记录,我想在一个单独的列表中获取 list1 中但不在 list2 中的值,比如 list_out1,而在另一个列表中的 list2 中但不在 list1 中的值是 list_out2。我终于想打印 list_out1 和 list_out2 了。我尝试按照此答案中给出的方式进行操作,但它在尝试打印 list_out1 时给了我 list1 中的所有值。此外,我尝试使用 foreach 循环和 if 条件如下,它还给了我 list1 中的所有值以打印 list_out1。

foreach ($i in $list1)
{
   if($list2 -notcontains $i) {
      $i
    }
}

我不知道我在哪里做错了。逻辑对我来说似乎没问题。如果我错了,请纠正我。

标签: powershellscriptingpowershell-3.0

解决方案


使用Compare-Object是你所追求的。假设你这样做$List1.Item或类似的事情。

$MissingGroups = Compare-Object -ReferenceObject ($List1) -DifferenceObject ($List2) -Property Item | Where-Object{$_.sideIndicator -eq "<="}

推荐阅读