在替换期间如何在双引号内转义逗号?

时间:2017-04-06 22:08:37

标签: powershell escaping

我使用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,但是当我这样做时,逗号的处理如上所示。使用反引号来转义逗号对输出没有影响。我做错了什么?

0 个答案:

没有答案