我试图读取文本文件,替换特定行的内容,然后再次输出结果,理想情况下采用相同的格式。问题是输出文件中有问号(?),而不应该有,而且我到目前为止还无法解决问题。
我试过了:
Get-Content c:\test\file.xml -Encoding Ascii | ForEach-Object {
if ($_ -like "replace") {
Add-Content -Path "c:\test\output.xml" -Value $_.replace("replace","fixed") -Encoding Ascii
} else {
Add-content -Path "c:\test\output.xml -Value = $_ -Encoding Ascii
}
}
这导致某些重音字符被问号替换。
我也尝试过使用streamreader和streamwriter,结果类似:
$InputFile = @("c:\test\file.xml")
$OutputFile = "C:\test\output.xml"
# File , Overwrite?, Encoding
$StreamWriter = New-Object System.IO.StreamWriter("$OutputFile", "True", [System.Text.Encoding]::Default)
foreach ($file in $InputFile) {
#More info available at http://msdn.microsoft.com/en-us/library/ms143457.aspx
# File , Text Encoding , Detect Encoding From Byte Order Marks (BOM)
$StreamReader = New-Object System.IO.StreamReader("$File", [System.Text.Encoding]::Default, "False")
while ($line = $StreamReader.readline()) {
if ($line -like "*replace*") {
$StreamWriter.Write("$line.replace(`"replace`",`"fixed`")")
}
}
#$Line = $StreamReader.ReadToEnd()
#$StreamWriter.Write("$Line")
#$StreamWriter.Flush()
}
$StreamReader.Close()
$StreamReader.Dispose()
$StreamWriter.Close()
$StreamWriter.Dispose()
我不确定在哪里上传我的文件副本,以便我可以将其超链接到这里...任何建议都会非常感激,因为我确信这会有很大的帮助!