2016-11-07 79 views
0

目前我的腳本不是追加,而是刪除我現有的文件。如何將我的輸出附加到現有的(.csv)文件?或者我不能將我的reuslt追加到一個文件中。 我正在將每個xml文件轉換爲csv文件(我在最後得到xml * xsl csv文件)。我只想擁有和我有xsl文件一樣多的csv文件。將輸出附加到文件?

C: 
$converter = New-Object System.Xml.Xsl.XslCompiledTransform; 
foreach ($xsl in (Get-ChildItem (Join-Path (Get-Location) "Users\fh0054\Desktop\powershell\xsl") -filter "*.xsl")) { 
  $converter.Load($xsl.FullName);  
  foreach ($xml in (Get-ChildItem (Join-Path (Get-Location) "Users\fh0054\Desktop\powershell\xml") -filter "*.xml")) { 
    $converter.Transform($xml.FullName, (Join-Path (Get-Location) ("Users\fh0054\Desktop\powershell\csv\" + $xml.Name + $xsl.Name + ".csv"))); 
  } 
} 

(我希望一個能明白我的意思了。)

回答

1

對於追加輸出到一個文件,你可以使用下面的命令:

$Path="Full Path of file" 
"Content you want to out file" | Out-file $Path -Append 

希望這有助於。

+1

這不提供問題的答案。 –

+0

問題在於如何將輸出附加到文件而不刪除它。我希望上述答案能達到目的。 如果沒有,讓我知道你到底在看什麼? – Venkatakrishnan

3

您可能會在某處存儲數據的臨時文件中添加新的文件數據。應該看起來像這樣:

$tempcsv = 'c:\temp\my.csv' 
$converter = New-Object System.Xml.Xsl.XslCompiledTransform; 

foreach ($xsl in (Get-ChildItem (Join-Path (Get-Location) "Users\fh0054\Desktop\powershell\xsl") -filter "*.xsl")) 
{ 
    $converter.Load($xsl.FullName); 
    foreach ($xml in (Get-ChildItem (Join-Path (Get-Location) "Users\fh0054\Desktop\powershell\xml") -filter "*.xml")) 
    { 
    $path = (Join-Path (Get-Location) ("Users\fh0054\Desktop\powershell\csv\" + $xml.Name + $xsl.Name + ".csv")) 
    $converter.Transform($xml.FullName, $path); 
    Import-Csv $path | Export-Csv -Path $tempcsv -Append -NoTypeInformation 
    } 
}