我想使用json文件存储Powershell脚本使用的变量。在azure devops中,我已经配置了管道,管道包含powershell脚本以及其中的变量列表。我想使用json文件并将所有变量存储在此文件中。我想将json文件存储在Azure存储库中,并在管道启动后使用它。我不想使用变量组。我找到了此解决方案[ Json to Variable ] https://marketplace.visualstudio.com/items?itemName=OneLuckiDev.json2variable&targetId=02fbae5c-cc01-4c8b-a90f-7393a3156347,但我读到了一些有关此任务的免费意见。有什么方法可以将json文件用作存储变量的地方,或者我可以使用其他文件格式? 更新:
答案 0 :(得分:1)
为什么不直接使用Powershell内置cmdlet:ConvertFrom-Json
。有关此cmdlet说明,请参阅此官方文档:Powershell: ConvertFrom-Json。
您可以添加脚本:
Get-Content "{JSON file path}" | out-string | ConvertFrom-Json
Get-Content
会将JSON文件读入字符串数组,然后ConvertFrom-Json
将这些字符串转换为PSCustomObject对象。然后,您可以使用简单的杠杆点符号(.
)来调用完全相同的对象,然后以这种格式将其用于任务脚本中。
以下是可供您参考的简单示例:
$data = Get-content {your JSON file path}| out-string | ConvertFrom-Json
Write-Output $data.ts
在这里,我在本地Powershell-ISE中进行了尝试,这与Powershell任务中的用法相同。 ts
是我的JSON对象之一。在azure devop中,如果将文件存储在Repos中,则可以使用$(Build.SourcesDirectory)\..\..\...json
之类的路径来指定文件位置。