add-content产生的流不可读

时间:2014-12-09 02:12:57

标签: powershell

我有一个PowerShell脚本,可以在处理非常大的XML时将大量行转储到csv文件。

在读取xml阅读器的过程中,我将每行写入csv文件,如下所示:

  $newline | add-content -path $csv_file

这适用于99%但偶尔我会在日志中看到" add-content:stream不可读"对于gazillions中的1或2个项目,我认为是因为它正忙于将过去的行写入其中。

任何决议?

2 个答案:

答案 0 :(得分:6)

这是一篇旧帖子,但我遇到了类似的问题(使用Set-Content代替Add-Content)。 就我而言,WriteAllText方法解决了这个问题。

这应该为你解决:

[System.IO.File]::AppendAllText($csv_file,$newline)

答案 1 :(得分:2)

如果您不想调用Windows API,则可以使用PowerShell方法。在do循环中放入try catch块,然后重试直到成功。

    $isWritten = $false

    do {
        try {
            Add-Content -Path $csv_file -Value $newline -ErrorAction Stop
            $isWritten = $true
        }
        catch {
        }
    } until ( $isWritten )
}