在 Powershell 中向 headers 添加多个值

Add multiple values to headers in Powershell

我有一些代码,通过几个 foreach 循环运行。

foreach ($Result in $ResultsCollection)
{

      $Result.Get()        

      [xml]$sdmPackageXml  = New-Object system.Xml.XmlDocument
           $sdmPackageXml.LoadXml($Result.Properties["SDMPackageXML"].Value)

          Write-host "########"
          write-host "LocalizedDisplayName       = " $Result.LocalizedDisplayName
          write-host "PackageID                  = " $Result.PackageID
          write-host "CI_ID                      = " $Result.CI_ID
          write-host "SoftwareVersion            = " $Result.SoftwareVersion
          write-host "Number of Deployment Types = " $Result.NumberOfDeploymentTypes


          foreach ($node in $sdmPackageXml.AppMgmtDigest.DeploymentType)
          {
             write-host "   DT Name                 = " $node.LogicalName

             foreach ($requirement in $node.Requirements)
             {
               foreach ($rule in $requirement.Rule)
               {
          

                 write-host "   Rule                    = " $requirement.Rule.Annotation.DisplayName.Text                  
               }

         }
      }

          write-host ""
}

我想添加一些 headers,以便它可以轻松导出到 .csv 文件,如下所示:

如何最容易实现?

我尝试使用数组和哈希表,但我无法真正做到这一点。

非常感谢feedback/help!

您可以创建一个自定义对象,将其添加到每个 foreach 循环中的数组中。对最后一个 foreach 循环执行此操作,例如

                   $objarray = @() #clear objarray on every run

                   foreach ($rule in $requirement.Rule)
                     $objArray += [PSCustomObject]@{
                       'LocalizedDisplayName' = $Somevalue
                        'PackageId' = $someothervalue
                     }
                   }

                   $objarray #Display table