我想在Azure devops“变量组”中定义一些变量,这些变量将在Powershell中使用,但是当变量类型是字符串时它可以工作,但有些是数组或对象时出错了。我的如下所示。左边是名称,右边是值
vmAlertedArray_backup => @("wbubuntu","wbubuntu2")
1.当我使用azure devops脚本时,它出错了
$vmAlertedArray_backup = $env:vmAlertedArray_backup
foreach($vmAlertedArray_backup 中的 $c){
写入主机“$c”
}
2.本地作品中的powershell如下
$vmAlertedArray_backup = @("wbubuntu","wbubuntu2")
foreach($vmAlertedArray_backup 中的 $c){
写入主机“$c”
}
谁能提供一些这方面的经验吗?谢谢
最佳答案
建议仅将变量作为字符串传递。如果要将对象传递给其他任务,可以使用“ConvertTo-Json -Compress”将其转换为 json 字符串。
$objectString = $object | ConvertTo-Json -Compress
Write-Host "##vso[task.setvariable variable=objectString;]$objectString"
并且在下一个 PS 任务中,您可以将其作为环境变量传递。但是,请将变量用单引号引起来。
然后您可以使用“ConvertFrom-Json”将字符串转换为对象。
$getFromEnv = $env:objectString | ConvertFrom-Json
foreach( $obj in $getFromEnv){
Write-Host ("displayName:{0} Id:{1}" -f $obj.displayName, $obj.Id)
}
关于azure - 可以在 Azure DevOps 中定义数组变量 "variable group",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174843/