Заметки о Windows и других программных продуктах Microsoft...

Создание массива с помощью PSCustomObject

Создание массива с помощью PSCustomObject

Для хранения и обработки данных в PowerShell используются массивы, в основном одномерные, реже многомерные. Одним из способов создания массивов является использование PSCustomObject.

PSCustomObject представляет из себя некий произвольный объект, а объектам в PowerShell можно присваивать различные свойства. Создать объект и наделить его свойствами можно так:

$object = New-Object PSObject -Property @{Name1 = Value1; Name2 = Value2; Name3 = Value3}

Или так (только в PowerShell 3.0 и выше):

$object = [pscustomobject]::@{Name1 = Value1; Name2 = Value2; Name3 = Value3}

Если создать простой одномерный массив, и добавить в него в качестве членов такие вот объекты, то получится что-то вроде многомерного массива.

Для примера предположим, что мы набираем сотрудников в компанию и нам необходимо составить базу кандидатов, чтобы потом иметь возможность поиска по ней. Для этого создадим массив, в качестве ключевых параметров возьмем имя (Name), возраст (Age) и рост (Height) кандидата:

$array = @()
$array += [PSCustomObject]@{Name=″Ivan″; Age=19; Height=210}
$array += [PSCustomObject]@{Name=″Mike″; Age=18; Height=170}
$array += [PSCustomObject]@{Name=″Alex″; Age=33; Height=198}

Вывести все содержимое такого массива можно командой:

$array | ft -a

Ну а при необходимости можем воспользоваться поиском. Например, отобрать имена кандидатов не старше 20 лет и выше 190 см. можно такой командой:

$array | where {$_.Age -le 20 -and $_.Height -ge 190} | select Name

массив pscustomobject

 

Способ простой и удобный. Работает достаточно быстро и позволяет обрабатывать большие объемы данных.

 
 
Комментарии

Пока нет комментариев.