【问题标题】:Azure Devops Pipeline - How to pass variable into Powershell functionAzure Devops Pipeline - 如何将变量传递给 Powershell 函数
【发布时间】:2021-07-28 14:01:02
【问题描述】:

我有带有 powershell 任务的 Yaml 管道:

       - task: PowerShell@2
        inputs:
          targetType: filePath
          filePath: $(System.DefaultWorkingDirectory)\folder\script.ps1
          arguments: > 
            -SP_TenantId "$(SP_TenantId)"
            -ProjectName "${{parameters.ProjectName}}"

script.ps1 有一个 PS 函数,它以 Yaml 参数中的强制参数开头

    param (
    [Parameter(Mandatory = $true)][string]$SP_TenantId,
    [Parameter(Mandatory = $true)][string]$ProjectName,

)

运行管道后,我收到一条错误消息,提示缺少 env:

Get-GraphToken : Cannot process command because of one or more missing mandatory parameters: SP_TenantId 

【问题讨论】:

  • 这个问题有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this

标签: powershell azure-devops azure-devops-pipelines


【解决方案1】:

当我将您的 sn-p 与我的管道进行比较时,根据提供的论点,我发现了一些差异:您可以这样尝试吗?

inputs:
  targetType: filePath
  filePath: $(System.DefaultWorkingDirectory)\folder\script.ps1
  arguments: '-SP_TenantId:"$(SP_TenantId)" -ProjectName:"${{parameters.ProjectName}}"'

【讨论】:

    【解决方案2】:

    Azure Devops Pipeline - 如何将变量传递给 Powershell 函数

    您可以尝试删除script.ps1 中的second 逗号

    param (
    [Parameter(Mandatory = $true)][string]$SP_TenantId,
    [Parameter(Mandatory = $true)][string]$ProjectName
    

    )

    我对其进行了测试,它在我这边运行良好。请检查一下。

    【讨论】:

      猜你喜欢
      • 2020-09-23
      • 2021-02-18
      • 2021-05-22
      • 2022-06-29
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多