我使用PowerShell迭代指定的文件列表,使用-replace
增加每个文件中的版本字符串,版本字符串包含逗号。例如:
VERSION 6,21,0,0
需要成为:
VERSION 7,1,0,0
以下是我正在做的事情:
ForEach-Object -InputObject $Files -Process {
foreach ($str in $_) {
(Get-Content -Path $str) | ForEach {
$_ -replace "VERSION \d+,\d+,0,0","VERSION $MAJOR,$MINOR,0,0"
} | Set-Content -Encoding UTF8 $str
}
主要正常工作,但逗号被点替换。
VERSION 6,21,0,0
变为:
VERSION 7.1.0.0
我理解需要双引号,因此评估$MAJOR
和$MINOR
,但是当我这样做时,逗号的处理如上所示。使用反引号来转义逗号对输出没有影响。我做错了什么?