You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Pipeline:向PowerShell内联任务传递参数

在PowerShell内联任务中传递和访问参数的方法

1. 直接引用管道/任务参数(以Azure DevOps为例)

如果是在CI/CD管道的PowerShell内联任务里,管道级或任务级定义的参数可以直接用${{ parameters.参数名 }}或者$(参数名)引用:

  • 先在管道里定义参数:
parameters:
- name: environment
  type: string
  default: 'dev'
  • 内联脚本里直接调用:
Write-Host "当前部署环境: ${{ parameters.environment }}"
# 如果是变量组里的变量,同样用$(变量名)调用
Write-Host "接口地址: $(ApiBaseUrl)"

2. 显式传递参数给脚本块

如果内联脚本需要结构化的参数,可以先在脚本里定义param块,再通过任务的arguments字段传参:

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      param(
          [string]$EnvName,
          [int]$MaxRetry
      )
      Write-Host "环境名称: $EnvName"
      Write-Host "最大重试次数: $MaxRetry"
    arguments: '-EnvName ${{ parameters.environment }} -MaxRetry $(RetryCount)'

脚本里的param块会接收arguments里的参数,直接用变量名就能访问。

3. 访问系统预定义参数

系统自带的管道参数(比如分支名、构建ID)不需要额外定义,直接用预定义变量引用即可:

Write-Host "当前分支: $(Build.SourceBranchName)"
Write-Host "构建编号: $(Build.BuildNumber)"

4. 参数转环境变量访问

你提到的$env变量也能用来读参数,只需要把管道参数映射到环境变量:

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      Write-Host "环境名(从环境变量读取): $env:TARGET_ENV"
  env:
    TARGET_ENV: ${{ parameters.environment }}

这样就把管道参数赋值给环境变量TARGET_ENV,再用$env:TARGET_ENV读取。

内容的提问来源于stack exchange,提问作者etalon11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 23:35:44