我是PowerShell的新手,它似乎是一种合理的方式,用我的SVN仓库中的版本号替换我的DLL中的内部版本号(通过修改.rc文件) 。使用PowerShell脚本替换DLL版本信息中的内部版本号
使用PowerShell ISE,我创建了以下变量:
$1 = "123"
$revision = "230"
现在我正在测试我的字符串替换用下面的命令来看看它的行为与我一直在网上阅读。我期待找到的东西,会给我回12,3,0,230
文件版本:
$pattern = '(^\s*FILEVERSION\s*[0-9]+,[0-9]+,[0-9]+,)[0-9]+$'
' FILEVERSION 12,3,0,0' -replace $pattern, "`$1"
# returns " FILEVERSION 12,3,0,"
' FILEVERSION 12,3,0,0' -replace $pattern, "$1"
# returns "123"
' FILEVERSION 12,3,0,0' -replace $pattern, '$1'
# returns " FILEVERSION 12,3,0,"
' FILEVERSION 12,3,0,0' -replace $pattern, "`$1$revision"
# returns "$1230"
' FILEVERSION 12,3,0,0' -replace $pattern, "`$1`$revision"
# returns " FILEVERSION 12,3,0,$revision"
' FILEVERSION 12,3,0,0' -replace $pattern, "$revision`$1"
# returns "230 FILEVERSION 12,3,0,"
我从尝试4和6.尝试4的结果感到惊讶,为什么PowerShell不要用“230”替代$revision
?同样尝试6,为什么它在`$1
之前正确地被替换?我在替代字符串中查找有关反引号的范围的信息,但没有发现任何内容。
谢谢!那就是诀窍。现在我更了解这种扩张,完全合理。 – Dave