PowerShell - Показать свойство родительского объекта и дочернего объекта - PullRequest
0 голосов
/ 13 декабря 2018

Если у меня есть список метаданных электронной почты в хеш-таблице, и каждое электронное письмо имеет хэш-таблицу со списком вложений внутри этого объекта, например:

$Emails = @{     
            ID          = "E123"; 
            Subject     = "Check this out"; 
            Attachments = @{
                            ID   = "A123"; 
                            Name = "FunnyPic.jpg"
                           }
           }

И затем эта хеш-таблица преобразуется в PSObject.как это:

$EmailsObject = New-Object -TypeName PSObject -Property $Emails

И я хочу сделать что-то вроде этого:

$EmailsObject | Select ID, Attachments.ID

Как бы я это сделал?

Я хочу связать IDсообщения электронной почты с ID связанных приложений.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Вы захотите использовать вычисленные свойства.

$Emails | Select-Object -Property @{Name='ID';Expression={$_.ID};},@{Name='AttachmentId';Expression={$_.Attachments.ID};}

Вы можете сократить Name и Expression до n и e.

Смотрите этостатья для более .

0 голосов
/ 13 декабря 2018

вам нужно использовать вычисляемое свойство, если вы используете Select-Object.как то так ...

$Emails = @{     
            ID          = "E123"; 
            Subject     = "Check this out"; 
            Attachments = @{
                            ID   = "A123"; 
                            Name = "FunnyPic.jpg"
                           }
           }
$EmailsObject = New-Object -TypeName PSObject -Property $Emails

$EmailsObject |
    Select-Object ID,
        @{
        n = 'AttID'
        e = {$_.Attachments.ID}
        }

вывод ...

ID   AttID
--   -----
E123 A123
...