热门标签 | 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.


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
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社区 版权所有