将输出附加到文件?

时间:2016-11-07 09:01:26

标签: xml powershell csv xslt append

目前我的脚本没有附加,但删除了我现有的文件。如何将输出附加到现有(.csv)文件?或者我无法将我的重新附加到文件中。 我正在使用每个xsl文件将每个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")));
  }
}

(我希望有人能理解我的意思。)

2 个答案:

答案 0 :(得分: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
  }
}

答案 1 :(得分:1)

要将输出附加到文件,您可以使用以下命令:

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

希望这个HElps。