Power shell 替换字符 Ž

Power shell replace character Ž

我有一个强大的 shell 脚本,基本上可以替换特定文件夹下所有文件中的特定字符,例如 (TM) -- > '™'。

脚本完美运行。但是当我尝试用 avé 替换 avŽ 时,它不起作用。如果我尝试将 av 替换为 ac 它会起作用。所以我假设替换不适用于 grapheme Ž 字符。如果您能就此提供一些想法,那就太好了。下面是替换字符的示例代码:

$old = 'PavŽ'
$new = 'Pavé 
$InputFiles = Get-Item "C:\..\..\*.txt"   
Get-Item $InputFiles | ForEach {
        (Get-Content -Path $_.FullName).Replace($old,$new) | Set-Content -Path $_.FullName
    } 

提前致谢。

Powershell 可以很好地替换任何字符。但可能还有一些其他问题:

  • 您的文件编码可能是问题所在。 (最有可能的)。 如果您的文件使用不包含特定代码页的代码进行编码 字符,这些字符将不会被保存。 您可能需要考虑以 支持的格式保存您的文件,例如UTF-8.
  • 您可能没有对某些文件的写入权限。

在我的小测试中,替换工作得很好。我用记事本创建了一个包含 'PavŽ' 的文件,另一个包含 'Pavé'.

你的几行 powershell 来回替换了所有内容(并切换了 $old 和 $new)。