在 Where-Object 中排除数组中的项目

Exclude items in array in Where-Object

我想知道是否有一种 simple/single-line 方法可以使用 Where-Object.

排除一组事物

所以与其去:

 $filtereddata = $data |
     Where {$_.var -ne "1"} |
     Where {$_.var -ne "2"} |
     Where {$_.var -ne "3"} |
     Where {$_.var -ne "4"} |
     Where {$_.var -ne "5"} |
     Where {$_.var -ne "7"} |
     Where {$_.var -ne "10"} |
     Where {$_.var -ne "12"} 

我去

 $filterddata = $data | Where {??????}

或者类似的东西...

注意它们都是一样的.Var

有没有更简单的方法?特别是说,在自动化场景中,要排除的 Var 的数量是否在不断增长?

$filtereddata = $data | Where{ $_.var -notin 1..12 }

如果你的数字实际上是整数而不是字符串,你可以使用 -notin.. 数组表示法。

否则,您可以将具有多个条件的单个 where 与 -or 连接起来,而不是通过管道传输到许多额外的 where-object 命令。