在 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%"
)
如果没有它们,%
字符可能会被视为特殊字符。
我正在处理团队城市建设步骤。这是我使用 %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%"
)
如果没有它们,%
字符可能会被视为特殊字符。