Создает фильтр, который определяет, какие объекты будут переданы по командному конвейеру.
Синтаксис
Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]
Описание
Командлет Where-Object выбирает объекты из переданного ему набора объектов. Он использует блок скрипта как фильтр и выполняет блок скрипта для каждого объекта. Если в результате выполнения получается значение True, этот объект возвращается. Если в результате выполнения не получается значение True, этот объект игнорируется.
Параметры
-FilterScript <scriptblock>
Указывает блок скрипта, используемый для фильтрации объектов. Заключайте блок скрипта в фигурные скобки ( {} ).
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-InputObject <psobject>
Указывает объекты, которые необходимо отфильтровать. Кроме того, можно передать объекты командлету Where-Object по конвейеру.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Management.Automation.PSObject Объекты для фильтрации можно передавать командлету Where-Object по конвейеру. |
Выходные данные |
Пример 1
C:\PS>get-service | where-object {$_.Status -eq "Stopped"} Описание ----------- Эта команда возвращает список всех служб, которые в данный момент остановлены. Символ "$" представляет каждый объект, переданный командлету Where-Object.
Пример 2
C:\PS>get-process | where-object {$_.workingset -gt 25000*1024} Описание ----------- Эта команда возвращает список процессов, размер рабочего множества которых превышает 25 000 КБ. Так как значение свойства WorkingSet хранится в байтах, значение 25 000 умножено на 1 024.
Пример 3
C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" } Описание ----------- Эта команда получает процессы, свойство ProcessName которых начинаются на букву "p". Оператор match позволяет использовать в предложении Where регулярные выражения.
Пример 4
C:\PS>get-process -name svchost | where-object {$True} Описание ----------- Эта команда перечисляет все процессы по имени "svchost". Командлет Where-Object выполняет блок скрипта, который обычно включает ссылку на текущий объект в конвейере ($_), и приводит результат к логическому типу: True или False. В случае результата True объект возвращается. В противном случае он отбрасывается. В данном случае блок скрипта просто возвращает True, поэтому все объекты возвращаются.