【发布时间】:2018-11-28 13:42:08
【问题描述】:
我一直在使用 TFS 从 PowerShell 创建一些发布变量。然后我可以在 TFS 的后续任务中使用 '$Env:Server' 来引用这个输出,这看起来很棒!例如:
任务 1 返回一个服务器名称,然后创建 TFS 变量:
Write-Host "##vso[task.setvariable variable=Server]"MySevrer
任务 2 使用此信息:
Write-Output $env:Server
MyServer
在以另一种格式(如数组或哈希表)输出时,这不起作用。创建的变量只是字符串,因为 documentation 使用“Write-Host”声明。
Task1 返回:
##vso[task.setvariable variable=Server] System.Collections.DictionaryEntry
任务 2 不能使用这个:
Write-Output $env:Server
System.Collections.DictionaryEntry
我尝试将其输出为数组格式的字符串,例如:
[String]$Server = '@{MyServer=@("192.168.0.1")}'
Write-Host "##vso[task.setvariable variable=Server]"$Server
当我提到这个时,我尝试将它转换回 PowerShell 中的数组,但是,我在脚本中执行此操作时遇到了问题,因为它会将字符串视为单个数组对象。 (不是有值的数组)
有谁知道是否可以根据 Powershell 任务输出的信息在 Team Service 的任务/任务任务组之间解析哈希表或数组?
我目前已经通过编写一个包装器/编排函数来解决这个问题,但这对我们来说不是理想的方式。我们目前使用的是 15.117.26714.0 版本,但我在较新的版本中看不到任何内容。
【问题讨论】:
标签: powershell variables tfs azure-devops task