Powershell 电源外壳替换字符Ž;

Powershell 电源外壳替换字符Ž;,powershell,powershell-2.0,powershell-3.0,Powershell,Powershell 2.0,Powershell 3.0,我有一个powershell脚本,基本上可以替换特定的字符,例如(TM-->'™' 在特定文件夹下的所有文件中 剧本写得很好。但当我试图用avé替换avŽ时,它不起作用。如果我试着用交流电来代替av,它会工作的。所以我假设replace不适用于graphemeŽ角色。如果你能就此提供一些想法,那就太好了。以下是替换字符的示例代码: $old = 'PavŽ' $new = 'Pavé $InputFiles = Get-Item "C:\..\..\*.txt" Get-Item $In

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

剧本写得很好。但当我试图用avé替换avŽ时,它不起作用。如果我试着用交流电来代替av,它会工作的。所以我假设replace不适用于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 en$new switched)很好。

谢谢,@realbart…第二点不应该是问题,因为它可以替换其他章程…可能是我对文件编码有问题。我投票认为您的答案正确。文件是在Mac机器上编码的。