У меня есть требование, когда моя строка имеет следующий формат:
<?define BuildNumber = "8314" ?>
Я использую приведенный ниже скрипт powershell в шаблоне сборки TFS 2017 для замены значения номера сборки:
$content = Get-Content -path "$(Build.SourcesDirectory)\Install\Common\Constants.wxi"
$num = $(Build.BuildId)
$content -Replace '(BuildNumber\s*=\s*")\d*("\s*)', "`$1 $num `$2" | Out-File $(Build.SourcesDirectory)\Install\Common\Constants.wxi
Это дает вывод как <?define BuildNumber = " 27994 " ?>
, что неверно, так как я не хочу пробелов в значении.Когда я попытался использовать приведенный ниже код, он не работает.
$content -Replace '(BuildNumber\s*=\s*")\d*("\s*)', "`$1$num`$2" | Out-File $(Build.SourcesDirectory)\Install\Common\Constants.wxi
Вывод: <?define $27994 ?>
Я перепробовал все комбинации, но не могу заставить цитаты работать правильно.Пожалуйста, предложите решение.