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)。
我有一个强大的 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)。