需要你帮助删除回车(`r)&我的XML文件中的换行符(`n)。我收到 System.OutOfMemoryException 错误
文件大小:600 MB
行数:1
输入文件格式
<File1>
<SubFile1> </SubFile1>
<SubFile2> </SubFile2>
<SubFile3> </SubFile3>
.........
<SubFilen> </SubFilen>
</File1>
使用的代码
$content = [IO.File]::ReadAllText($input_File)
$content = $content.Replace("`r","")
$content = $content.Replace("`n","")
[system.io.file]::WriteAllText($Output_File,$content)
也试过
Get-Content
我尝试使用MaxMemoryPerShellMB 1024,2048,4096 ,但没有运气。
答案 0 :(得分:1)
Don Jones有一篇很好的文章Why Get-Content Ain’t Yer Friend。
尝试使用StreamReader
逐行读取文件,并使用StreamWriter
逐行编写新的(临时)文件。完成后,只需替换文件:
$streamReader = New-Object System.IO.StreamReader -Arg "yourFile.xml"
$streamWriter = [System.IO.StreamWriter] "tmp.xml"
while ($line = $streamReader.ReadLine()) {
$replacedLine = $line -replace '`r|`n'
$streamWriter.Write($replacedLine);
}
$streamReader.close()
$streamWriter.close()
Remove-Item "yourFile.xml" -Force
Rename-Item "tmp.xml" "yourFile.xml"