Проверьте, есть ли объект в списке объектов - PullRequest
24 голосов
/ 31 марта 2011

Поскольку PowerShell имеет много командлетов, подобных SQL-запросам, существует ли быстрый способ проверки наличия объекта в списке других объектов с помощью командлета Where-Object?

Что-то похожее на SQL:

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

Конечно, я могу написать простую подпрограмму, но мне было просто интересно, есть ли такая функция.

1 Ответ

33 голосов
/ 31 марта 2011

Вы можете использовать оператор -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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...