Select-Object
Выбирает указанные свойства объекта или набора объектов. Также он может выбирать уникальные объекты из массива объектов или выбирать указанное число объектов с начала или с конца массива объектов.
Синтаксис
Select-Object [[-Property] <Object[]>] [-ExcludeProperty <string[]>] [-ExpandProperty <string>] [-First <int>] [-InputObject <psobject>] [-Last <int>] [-Skip <int>] [-Unique] [<CommonParameters>]
Select-Object [-Index <Int32[]>] [-InputObject <psobject>] [-Unique] [<CommonParameters>]
Описание
Командлет Select-Object получает только указанные свойства объекта или набора объектов. Также он может выбирать уникальные объекты из массива объектов или выбирать указанное число объектов с начала или с конца массива объектов.
При использовании командлета Select-Object для выбора указанных свойств он копирует значения этих свойств из объектов ввода и создает новые объекты, которые содержат указанные свойства со скопированными значениями.
Для указания свойств, которые требуется выбрать, используйте параметр Property. Либо используйте параметры First, Last, Unique, Skip и Index, чтобы выбрать конкретные объекты из массива объектов ввода. Для более тонкой фильтрации объектов используйте командлет Where-Object.
Параметры
-ExcludeProperty <string[]>
Исключает указанные свойства из выбора. Подстановочные знаки разрешены. Этот параметр действует только, если команда включает параметр Property.
Значением параметра свойства может быть вычисляемое свойство, то есть хэш-таблица, задающая имя и вычисляющая значение для отображения свойства. Допустимые ключи:
-- Name (или Label) <строка>
-- Expression <строка> или <блок скрипта>
Дополнительные сведения см. в примерах.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
true |
-ExpandProperty <string>
Задает выбираемое свойство и указывает, что необходимо попытаться развернуть это свойство. В имени свойства разрешается использовать подстановочные знаки.
Например, если заданное свойство является массивом, необходимо включить в вывод каждое значение массива. Если свойство содержит объект, в выводе отображаются все свойства этого объекта.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
true |
-First <int>
Указывает количество объектов, считая с начала массива объектов ввода, которые нужно выбрать.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Index <Int32[]>
Выбирает объекты из массива на основании значений их индексов. Введите индексы, разделенные запятыми.
Индексы в массиве начинаются с 0, где 0 обозначает первое значение, а (n-1) — последнее значение.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-InputObject <psobject>
Задает объекты для отправки командлету по конвейеру. Этот параметр позволяет отправлять объекты командлету Select-Object по конвейеру.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
false |
-Last <int>
Указывает количество объектов, считая с конца массива объектов ввода, которые нужно выбрать.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Property <Object[]>
Указывает, какие свойства нужно выбрать. Подстановочные знаки разрешены.
Значение параметра Property может быть новым вычисляемым свойством. Чтобы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые ключи:
-- Name (или Label) <строка>
-- Expression <строка> или <блок скрипта>
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
true |
-Skip <int>
Пропускает (не выбирает) указанное число элементов. По умолчанию значение параметра Skip отсчитывается от начала массива или списка объектов, однако если для команды задан параметр Last, отсчет ведется от конца списка или массива.
В отличие от параметра Index, значения которого отсчитываются от 0, значения параметра Skip отсчитываются от 1.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Unique
Указывает, что если несколько объектов ввода имеют одинаковые свойства и их значения, то будет выбран только один из объектов.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Management.Automation.PSObject Любой объект можно передать командлету Select-Object по конвейеру. |
Выходные данные |
System.Management.Automation.PSObject |
Примечания
Командлет Select-Object также можно вызывать с помощью встроенного псевдонима "select". Дополнительные сведения см. в разделе About_Aliases.
Пример 1
C:\PS>get-process | select-object ProcessName,Id,WS
Описание
-----------
Эта команда отображает список процессов. При этом отображаются только имеющиеся у процессов свойства name, ID и Working Set (WS).
Пример 2
C:\PS>get-process | select-object processname -expandproperty modules |
format-list
ProcessName : 00THotkey
Size : 256
Company : TOSHIBA Corporation
FileVersion : 1, 0, 0, 27
ProductVersion : 6, 2, 0, 0
Description : THotkey
Product : TOSHIBA THotkey
ModuleName : 00THotkey.exe
FileName : C:\WINDOWS\system32\00THotkey.exe
BaseAddress : 4194304
Описание
-----------
Эта команда отображает сведения о модулях, используемых выполняемыми на компьютере процессами. Для вывода сведений, содержащихся в свойстве modules, используется параметр ExpandProperty.
Пример 3
C:\PS>get-process | sort-object -property WS | select-object -Last 5
Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
2866 320 33432 45764 203 222.41 1292 svchost
577 17 23676 50516 265 50.58 4388 WINWORD
826 11 75448 76712 188 19.77 3780 Ps
1367 14 73152 88736 216 61.69 676 Ps
1612 44 66080 92780 380 900.59 6132 INFOPATH
Описание
-----------
Эта команда отображает сведения о пяти процессах, использующих наибольший объем памяти. Командлет Sort-Object используется для сортировки процессов по объему используемой памяти (Working Set), а командлет Select-Object — для выбора пяти последних элементов итогового массива объектов.
Пример 4
C:\PS>get-process | select-object -property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}}
ProcessName StartDay
---- --------
alg Wednesday
ati2evxx Wednesday
ati2evxx Thursday
...
Описание
-----------
Эта команда отображает имена выполняемых на компьютере процессов и названия дней, когда они были запущены.
Значения параметра Property — ProcessName и вычисляемое свойство "Start Day". Свойство "Start Day" добавляется с помощью хэш-таблицы с ключами Label и Expression.
Пример 5
C:\PS>"a","b","c","a","a","a" | select-object -unique
a
b
c
Описание
-----------
Эта команда выводит уникальные знаки из массива знаков.
Пример 6
C:\PS>$a = get-eventlog -log "Windows PowerShell"
C:\PS> $a | select-object -index 0, ($a.count - 1)
Описание
-----------
Эти команды получают первое (самое позднее) и последнее (самое раннее) события из журнала событий Windows PowerShell.
С помощью командлета Get-EventLog первая команда получает все события журнала Windows PowerShell. Она сохраняет события в переменной $a.
Вторая команда с помощью оператора конвейера (|) передает события в переменной $a в командлет Select-Object. Команда Select-Object использует параметр Index, чтобы выбрать элементы по их индексам. Индекс первого события равен 0. Индекс последнего события равен числу элементов в переменной $a минус 1.
Пример 7
C:\PS>new-pssession -computername (get-content servers.txt | select-object -skip 1)
Описание
-----------
Эта команда создает сеанс PSSession на каждом из компьютеров, указанных в файле Servers.txt, кроме первого компьютера.
Эта команда использует командлет Select-Object, чтобы выбрать в списке все компьютеры, кроме первого. Полученный список компьютеров передается командлету New-PSSession в качестве значения параметра ComputerName.