Еще ошибочку исправил:
for (($i=$str.length-2); ($i -ge 0); $i--)
, во избежание выхода i за границы, если иероглиф в конце строки.
$In = [io.file]::ReadAllLines("d:\in.txt", [text.encoding]::GetEncoding(65001))
$Out = @()
foreach ($str in $In) {
for (($i=$str.length-2); ($i -ge 0); $i--) {
if ([int][char]$str.Chars($i) -band 128) {
if ([int][char]$str.Chars(($i+1)) -eq 92) {
$str = $str.Insert(($i+1), "\")
}
}
}
Write-Output $str
$Out += $str
}
[io.file]::WriteAllLines("d:\out1.txt", $Out, [text.encoding]::GetEncoding(65001))