2011-03-31 41 views
15

由於PowerShell有很多像SQL查詢一樣的cmdlet,有沒有一種快速的方法來檢查對象是否在使用Where-Object cmdlet的其他對象列表中?檢查對象是否在對象列表中

喜歡的東西在SQL:

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

當然,我可以寫一個簡單的子程序,但我只是想知道是否有這樣的功能。

回答

24

可以使用-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),將會產生相應的元素。

+0

它倒退,但它的作品。謝謝! – Mordechai 2013-08-22 06:31:36

相關問題