ConvertTo-XML未按预期显示

时间:2014-01-24 18:31:14

标签: powershell powershell-v2.0

在foreach循环中,我试图收集有关多个对象的信息,并将它们连接在一个XML文件中。

foreach($Task in $Tasks) {            
    $OutputObj = New-Object -TypeName PSobject             
    $OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer            

    # does not work, $s contains '#document'
    $s = ConvertTo-XML -InputObject $OutputObj
    Write-Host $s   
    # works as expected
    $OutputObj | Export-CliXML $OutPath  
}  

ConvertTo-XML我做错了什么?如何才能生成Export-CliXML的输出?为了清楚起见,我想转换每个$outputobj并将其附加到输出文件。

2 个答案:

答案 0 :(得分:1)

试试这个:

($Tasks | ForEach-Object {
    $OutputObj = New-Object -TypeName PSObject
    $OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer
    Write-Output $OutputObj
} | ConvertTo-XML -NoTypeInformation).Save($OutPath)

或者这个:

$combined = @()
foreach($Task in $Tasks) {            
    $OutputObj = New-Object -TypeName PSobject             
    $OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer

    $combined += $OutputObj
}
$combined | Export-CliXML $OutPath

您希望看到什么结果?
要了解有关ConvertTo-XML的更多信息,请阅读文章“使用ConvertTo-XML Cmdlet装扮您的XML输出”http://technet.microsoft.com/en-us/library/ff730921.aspx

答案 1 :(得分:0)

而不是

$s = ConvertTo-XML -InputObject $OutputObj

尝试

$s = $OutputObj | ConvertTo-XML

我对ConvertTo-CSV有同样的问题。 -InputObject参数无法正常工作。但是将对象传递给ConvertTo-CSV可以按预期工作。