2014-01-24 7 views
0

foreach 루프에서 많은 개체에 대한 정보를 수집하고이를 모두 하나의 XML 파일에 연결하려고합니다.ConvertTo-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을 변환하여 출력 파일에 추가하려고합니다.

+0

"-As Stream"을 추가하면 도움이되지만 각 $ s는 개별 xml 문서입니다. – Number8

답변

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

0

대신

$s = ConvertTo-XML -InputObject $OutputObj 

의 나는이

$s = $OutputObj | ConvertTo-XML 

을 시도 읽기 ConvertTo-CSV와 동일한 문제. -InputObject 매개 변수가 예상대로 작동하지 않습니다. 그러나 개체를 ConvertTo-CSV로 파이프하는 것은 예상대로 작동합니다.

관련 문제