我有一个PowerShell脚本,可以在处理非常大的XML时将大量的行转储到csv文件中。
在xml阅读器的while读取期间,我将每一行写入csv文件,如下所示:
$newline | add-content -path $csv_file
这适用于99%,但偶尔我会在日志“add-content:流不可读”中看到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 )
}