【问题标题】:variable not getting invoked in azure powershell在 azure powershell 中未调用变量
【发布时间】:2019-09-10 15:35:42
【问题描述】:

我在 azure-devops 的发布管道中将一个变量设置为 myFlag : true。 我试图在 powershell 任务中调用myFlag,但没有得到任何结果。我的内联脚本:

If ( $myFlag -eq 'false' ) {
  Write-Host "Hit!"
} Else {
  Write-Host "Not Hit!"
}

$myFlag 没有任何价值,因此 else 块被击中。

【问题讨论】:

  • 你能提供它来自哪里的 yaml 以及你如何将它传递给 powershell 任务吗?

标签: azure azure-devops azure-pipelines


【解决方案1】:

如果($myFlag -eq 'false')

$myFlag 中没有值的原因是这是一个动态变量的定义格式,它只存在于当前作业中。在一个世界中,它正在创建一个名为myFlag 的新变量,而不是从您预定义的变量 中获取值。这就是$myFlag 没有价值的原因。

根据您的脚本逻辑,您将获得在变量选项卡中预定义的myFlag 的值,然后将其与“false”进行比较。如果 myFlag 的值为 False,则在日志中打印出Hit!,否则打印出Not Hit!。因此,只需将您的脚本更改为:

If ('$(myFlag)' -eq 'false' ) {
  Write-Host "Hit!"
} Else {
  Write-Host "Not Hit!"
}

或者:

$myFlag = '$(myFlag)'

If ($myFlag -eq 'false') {
  Write-Host "Hit!"
} Else {
  Write-Host "Not Hit!"
}

【讨论】:

    猜你喜欢
    • 2017-08-04
    • 2021-07-14
    • 2023-02-09
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多