由于PowerShell有许多类似SQL查询的cmdlet,是否有一种快速方法可以检查对象是否在Where-Object
cmdlet的其他对象列表中?
像SQL一样:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
当然我可以编写一个简单的子程序,但我只是想知道是否有这样的功能。
答案 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
)。