我正在从经典的生成系统(Azure Devops中的任务定义)迁移到yaml生成定义,并在以下错误中运行。我能够在执行PowerShell脚本时分解错误,并确定yaml文件中的语法有问题。
我像下面这样使用PowerShell内联步骤:
name: 1.1$(Rev:.r)
jobs:
- job: build
steps:
- task: PowerShell@2
displayName: 'Test'
inputs:
targetType: 'inline'
script: '$var1 = "valueVar1"
$var2 = "valueVar2"'
当我运行命令时,我在Azure Devops中遇到以下错误。
2019-12-07T18:39:15.3306239Z At D:\A\01\_temp\298966df-c117-432b-b4c1-17b4ece9d7f4.ps1:2 char:21
2019-12-07T18:39:15.3306715Z + $var1 = "var1Value" $var2 = "var2Value"
2019-12-07T18:39:15.3306784Z + ~~~~~
2019-12-07T18:39:15.3306847Z Unexpected token '$var2' in expression or statement.
2019-12-07T18:39:15.3307001Z + CategoryInfo : ParserError: (:) [], ParseException
2019-12-07T18:39:15.3307719Z + FullyQualifiedErrorId : UnexpectedToken
2019-12-07T18:39:15.3308055Z
2019-12-07T18:39:15.4085556Z ##[error]PowerShell exited with code '1'.
看起来我没有在yaml Powershell内联定义中使用换行符。
应该像这样完成:
script: |
$var1 = "valueVar1"
$var2 = "valueVar2"
与任何内联任务(cmd \ bash \ pwsh)相同。
实际上,您可以这样做:
steps:
- powershell: |
$var1 = "valueVar1"
$var2 = "valueVar2"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句