我在 Azure Devops 中有一个构建 VM 的任务
任务 1 构建虚拟机 任务 2 根据需要添加数据磁盘
所以在任务 2 中我有一个内联 powershell 脚本,但是当我运行它时它给出了一个错误 "术语“n”未被识别为 cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。不确定为什么会出现错误? ”
###Azure Devops pipeline variable is $(datadisk1required) this has the value 'n'
$datadisk1required = $(datadisk1required)
if ($datadisk1required -eq "n")
{
write-host "datadisk1 not required"
write-host $datadisk1required
}
最佳答案
脚本中 AzDO 变量的替换发生在 PowerShell 运行之前,这意味着如果内联脚本定义是:
$powerShellVariable = $(azVariable)
并且任务中 azVariable
变量的值为“string”,传递到 PowerShell 的结果脚本将是:
$powerShellVariable = string
PowerShell 会将裸词 string
解释为命令名称,因此会出现错误。
在 AzDO 变量宏周围加上引号,它将起作用:
$datadisk1required = '$(datadisk1required)'
关于azure - 您可以在 Azure Devops 的内联 Azure Powershell 脚本中使用 IF 语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69467136/