Поделиться через


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.





См. также

Концепции

Where-Object
Group-Object
Sort-Object