2016-11-07 112 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 
    } 
}