PowerShell - 显示父对象和子对象的 属性

PowerShell - Show Property of Parent Object and Child Object

如果我在哈希表中有一个电子邮件元数据列表,并且每封电子邮件都有一个哈希表,其中包含该对象中的附件列表,如下所示:

$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 相关联。

如果使用 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

您将需要使用计算属性。

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

您可以将 NameExpression 缩短为 ne

See this article for more.