Azure DevOps:如何将流水线参数传递至PowerShell脚本
解决Azure DevOps流水线参数传递到PowerShell脚本的问题
首先纠正你流水线配置里的两处拼写错误:
$(5ystem. DefaultWorkingDirectory)应该改为$(System.DefaultWorkingDirectory)(数字5改成字母S,去掉路径里的空格)- 脚本文件后缀
.psl应该是.ps1(PowerShell脚本的标准后缀)
步骤1:修改流水线YAML,传递参数
在PowerShell@2任务中,通过arguments字段将${{ parameters.env }}传递给脚本:
parameters: - name: env displayName: Select Environment type: string default: development stages: - stage: test displayName: test var jobs: - job: PostgresSQL steps: - task: PowerShell@2 inputs: filePath: '$(System.DefaultWorkingDirectory)/test.ps1' arguments: '-env "${{ parameters.env }}"' # 新增该行传递参数 errorActionPreference: 'continue' enabled: true
步骤2:在PowerShell脚本中接收参数
在test.ps1里用param()块定义对应参数:
param( [string]$env # 和YAML中传递的参数名保持一致 ) # 验证参数接收结果 Write-Host "当前环境参数值:$env"
官方文档相关说明
Azure DevOps官方文档明确:PowerShell@2任务支持通过arguments字段向脚本传递命令行参数,脚本需通过param()块定义命名参数,或使用$args数组接收未命名参数。使用命名参数时,需保证YAML中传递的参数名和脚本内定义的参数名完全匹配。
内容的提问来源于stack exchange,提问作者Cat Lover
相关产品推荐
相关产品推荐

