在 powershell 构建步骤中出现“=”错误后缺少表达式

Getting Missing expression after '=' error in powershell build step

我正在处理团队城市建设步骤。这是我使用 %teamcity.build.branch% 和 %teamcity.build.checkoutDirectory% 参数的 powershell 步骤。这是脚本:

param([string]$branchName=%teamcity.build.branch%, [string]$bldCheckOutDir=%teamcity.build.checkoutDir%)

write "Value of branchName is $branchName"
write "Value of bldCheckOutDir is $bldCheckOutDir"

if ($branchName.Substring(0,1) -like "F") {Write "Working on a Feature Branch"; CD $bldCheckOutDir\DCD-GUI; npm test; sonar-scanner -X}
elseif ($branchName.Substring(0,2) -like "US") {Write "Working on a Story Branch"}
elseif ($branchName.Substring(0,2) -like "DE") {Write "Working on a Defect Branch"}
elseif ($branchName.Substring(0,2) -like "QA") {Write "Working on a QA1 Branch"; CD $bldCheckOutDir\DCD-GUI; npm test; CD ..; FortifyBatchFile.bat; sonar-scanner -X; }
else {Write "BranchName not known"}

当我 运行 此脚本作为构建配置中的构建步骤时,出现以下错误:

[Step 4/4] Working directory: E:\BuildAgent\work\d429bf6e9117eae6 [04:25:58][Step 4/4] PowerShell arguments: [-NonInteractive, -ExecutionPolicy, ByPass, -File, E:\BuildAgent\temp\buildTmp\powershell6621137048056018482.ps1] [04:26:08][Step 4/4] Missing expression after '='. [04:26:08][Step 4/4] At E:\BuildAgent\temp\buildTmp\powershell6621137048056018482.ps1:1 char:27 [04:26:08][Step 4/4] + param([string]$branchName= <<<< qa1, [string]$bldCheckOutDir=E:\BuildAgent\wo [04:26:08][Step 4/4] rk\d429bf6e9117eae6) [04:26:08][Step 4/4] + CategoryInfo
: ParserError: (=:String) [], ParentContainsErrorR [04:26:08][Step 4/4] ecordException [04:26:08][Step 4/4] + FullyQualifiedErrorId : MissingExpressionAfterToken

我做错了什么?

在参数块中,您需要用双引号或单引号将 teamcity 变量括起来:

param(
    [string]$branchName = "%teamcity.build.branch%",
    [string]$bldCheckOutDir = "%teamcity.build.checkoutDir%"
)

如果没有它们,% 字符可能会被视为特殊字符。