热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Azuredevops更新json文件Powershell脚本

我创建了powershell脚本来使用变量更新json文件。Json文件位于Azuredevops存储库中,json文件名为v

我创建了powershell脚本来使用变量更新json文件。 Json文件位于Azure devops存储库中,json文件名为var.json。
我将在azure devops中使用此解决方案,因此我建立了管道并在azure devops的变量选项卡中设置测试变量:

Azure devops-更新json文件-Powershell脚本

在我的脚本中,我具有参数和变量块,如下所示:

param(
[Parameter (Mandatory=$true)]
[String] $FileRes
)
#env variable
$Path = $Env:BUILD_SOURCESDIRECTORY
# Download variables from Json file
$JsOnBase= @()
$JsOnPath= "$Path\Var.json"
$JsOnBase= Get-Content $JsonPath | out-string | ConvertFrom-Json
$JsonBase.FileNames[0].value = $FileRes

在我的脚本中,我使用命令:$JsonBase | ConvertTo-Json | Set-Content -Path $JsonPath将输出定向到json文件。

Json文件结构:

{
"FileNames": [
{
"value": "AAAbbbccc123","value1": "www","value3": "swd","value4": "xvb"
}
]
}

管道末端的状态正常,所有步骤均为绿色,但是var.json文件未根据需要更新。仍然有旧值-> "value": "AAAbbbccc123"



实际上,它已被替换,但是您需要在输出存储库中看到此更改。

为清楚起见,您可以使用私有代理来运行此版本。然后转到相应的本地存储库,并在构建完成后检查Var.json文件:

enter image description here

在脚本中,您Set-Content进入$(Build.SourcesDirectory)\Var.json下的文件,而不是VSTS repos中存储的文件。因此,要检查它是否被成功替换,请转到您的output repos,即代理人。

有时,如果您使用的是托管代理,则您可能无法查看详细的输出存储库,因为在管道完成后,主机映像将由服务器回收。

这时,您可以在其中添加另一个脚本以打印出JSON文件内容,然后可以检查它是否被成功替换:

$cOntent= Get-Content -Path $JsonPath
Write-Host $content

enter image description here


此外,请对脚本进行一些更改:

$JsonBase.FileNames[0].value = "$(FileRes)"

由于您在变量标签中指定了值,因此请使用$(FileRes)而不是$FileRes。并且不要忘记双引号""

更新

要将输出存储库更改同步回VSTS存储库,请尝试按照以下步骤操作:

enter image description here

(1)第一个命令行任务:

git config --global user.email "xxx@xx.com"
git config --global user.name "Merlin"
cd $(Build.SourcesDirectory)
git init

(2)在powershell任务中,执行set-content脚本。

(3)在第二个命令行任务中,执行git push以推送更改:

git add Var.json
git commit -m "aaaa"
git remote rm origin
git remote add origin https://xxx@dev.azure.com/xxx/xxx/_git/xxxx
git push -u origin HEAD:master

enter image description here

此外,要在管道中成功运行git脚本。除了启用“允许脚本访问........”之外,您还应该遵循此permission setting.


推荐阅读
author-avatar
枝玫焰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有