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
我的计数器似乎添加了这个非常奇怪的字符,而我只是想根据计数器将“®”替换为数字。
代码:
[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