我有一个xml元数据文件,其标题我需要更改。标题如下所示:
$prevVerionHeader = 'Version="((r)\d*)" Author='
$newVerionHeader = 'Version="r'+$number+'" Author='
Write-Host $prevVerionHeader
Write-Host $newVerionHeader
(Get-Content $SBmetaDataPath).replace($prevVerionHeader,$newVerionHeader) | Out-File $SBmetaDataPath
我们的想法是在此文件上运行Get-Content替换,并将版本设置为项目的当前版本。在上面的例子中,版本是r26。它可以是rXX,其中X是任意数字。
我需要将其更改为r01或r67,其中01和67是最新的项目构建号。
我的Powershell构建脚本看起来像这样但不起作用:
$prevVerionHeader = 'Version="r26" Author='
$ SBmetaDataPath是文件的完整路径,$ number是最新的内部版本号。
如果我使用以下内容,则替换完美发生:
(Get-Content $SBmetaDataPath) -replace($prevVerionHeader,$newVerionHeader) | Out-File $SBmetaDataPath
我需要的是一个与Version =“rXX”匹配的正则表达式模式。我意识到在双引号之间使用rXX可能会导致问题。
请帮忙。我确实有一些Powershell的经验,但它非常令人生畏和困惑。另外,将自动构建文件更改为Powershell以外的其他内容为时已晚。
解决方案以防有人来到这里:
{{1}}
如上所述: String.Replace()执行常规字符串替换,-replace是一个正则表达式运算符 - Mathias R. Jessen