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


推荐阅读
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 本文探讨了在UC浏览器中调用分享面板后,图片无法正常显示的问题,并提供了详细的解决方法和代码示例。 ... [详细]
  • 本文介绍如何在PostgreSQL数据库中正确插入和处理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社区 版权所有