如何在powershell中动态传递azure管道变量名并加载其值?

kcwpcxri  于 2023-05-07  发布在  Shell
关注(0)|答案(1)|浏览(198)

我正在尝试将管道变量加载到powershell脚本中。下面的工作,但变量是硬编码的,不支持我的用例:

steps:
- powershell: |
    echo "The following output: $env:VARIABLE1"

相反,我想动态地传递VARIABLE1。所以类似这样的东西(不起作用):

parameters:
- name: variableName
  type: string
  default: VARIABLE1

steps:
- powershell: |
    echo "The following output: $env:${{ parameters.variableName }}"

我想到的一种方法是保存整个脚本,在执行之前对它运行查找和替换,并以这种方式设置变量。但在我看来,应该有更好的办法。
此问题的一些其他上下文:我遇到了一个问题,我的参数在编译时被解析,而我在这个模板中需要的变量在这种情况下还不可用。所以我想通过传递变量名,我可以在脚本执行时将其加载到脚本中,从而避免了我的问题。

sr4lhrrt

sr4lhrrt1#

想一想$env:${{ parameters.variableName }}"语句的作用。您正在对variableName参数的 value 进行插值,然后尝试通过将其引用为$env:来将其视为环境变量。这说不通啊您已经将值注入到脚本中。您可以在powershell步骤中使用env块将参数Map到环境变量。

steps:
- powershell: |
    echo "The following output: $env:FOO"
  env:
    FOO: ${{ parameters.variableName }}

相关问题