[英]Use Json variable between two PowerShell steps
In an Azure Devops Pipeline I need to pass over a Json variable from a Powershell script in step 1 to another Powershell script in step 2. The double quotes of the Json variable seem to be messing things up. Escaping 它们似乎也不起作用。
这里有两个步骤:
- task: PowerShell@2
displayName: 'Debug -> Step 1'
inputs:
targetType: 'inline'
script: |
$json = [pscustomobject]@{ prop1 = "value1"; prop2 = "value2" } | ConvertTo-Json
Write-Host "##vso[task.setvariable variable=MYVAR]$json"
- task: PowerShell@2
displayName: 'Debug -> Step 2'
inputs:
targetType: 'inline'
script: |
echo $env:MYVAR
这导致:
知道如何将 object (在 Json 中)传递到另一个步骤吗?
日志记录命令##vso[task.setvariable]
只能接受单行字符串。 您需要使用-Compress
将 json object 转换为单行字符串。 请参见下面的示例:
$json = [pscustomobject]@{ prop1 = "value1"; prop2 = "value2" } | ConvertTo-Json -Compress
Write-Host "##vso[task.setvariable variable=MYVAR]$json "
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.