Powershell 增量 Global:counter++

Powershell Increment Global:counter++

我的计数器似乎添加了这个非常奇怪的字符,而我只是想根据计数器将“®”替换为数字。

代码:

   [int]$global:counter = 1
Get-Content "C:\Users\mikejoh\Desktop\Cases\Sup\sup.xml" | Foreach {
    [regex]::replace($_, '®', 
        {($global:counter++)})
} | Out-File "C:\Users\mikejoh\Desktop\Cases\Sup\sup_test.xml" -encoding UTF8

脚本之前:

<ExternalIdentifier>600®</ExternalIdentifier>

之后的结果:

<ExternalIdentifier>600Â1</ExternalIdentifier>

这个 'Â' 字符是怎么回事?

由于您使用 UTF8 写回文件,我的假设是文件是如何编码的,应该以相同的方式读取。

我相信 Get-Content 默认为 ASCII 编码。从 PowerShell 3.0 开始,-Encoding 参数可用。

Get-Content "C:\Users\mikejoh\Desktop\Cases\Sup\sup.xml" -Encoding UTF8