电源外壳替换字符Ž

时间:2017-06-07 15:20:03

标签: powershell powershell-v2.0 powershell-v3.0

我有一个基本上替换特定字符的电源shell脚本,例如(TM) - >特定文件夹下的所有文件中的“™”。

该脚本完美无缺。但是当我尝试用avé替换avŽ时,它无效。如果我尝试用 ac 替换 av ,它可以正常工作。所以我假设替换不适用于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
    } 

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

你的几行powershell取而代之的是所有东西(以及$ old new new切换)来回都很好。