检查对象是否在对象列表中

时间:2011-03-31 08:00:16

标签: powershell

由于PowerShell有许多类似SQL查询的cmdlet,是否有一种快速方法可以检查对象是否在Where-Object cmdlet的其他对象列表中?

像SQL一样:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

当然我可以编写一个简单的子程序,但我只是想知道是否有这样的功能。

1 个答案:

答案 0 :(得分:30)

您可以使用-contains运算符:

Get-ColumnNames $table | Where-Object { value1,value2,... -contains $_ }

虽然左侧有值集合,但它是向后的。

在PowerShell 3中,您还可以使用-in运算符:

Where-Object { $_ -in value1,value2,... }

甚至

Where-Object -In value1,value2,...

此外,有关PowerShell如何与比较运算符一起使用的怪癖,您可以将它们直接应用于左侧的集合:

Where-Object { value1,value2,... -eq $_ }

-eq运算符会在列表中生成相应的元素,或者$null(强制为$false)。