如何使用PowerShell读取TXT内容替换JSON文件指定字段值
PowerShell 替换JSON字段值实现方案
首先要注意:你提供的原始deployer.json存在语法问题,url行末尾缺少英文逗号,运行前请先补上,否则JSON解析会失败。
补全后正确的原始deployer.json示例:
{ "user":"some_user", "url":"some_url", "urlglobal":"some_global_url", "db":"some_db" }
你可以直接在已有初始代码的基础上补充以下内容完成需求:
# 你已有的初始代码,增加-Raw参数将内容读取为单个字符串 $templatecontent = Get-Content -Path .\deployer.json -Raw # 读取两个txt文件内容,同时去除首尾多余的换行、空白字符 $urlVal = Get-Content -Path .\output1.txt -Raw | Trim() $urlGlobalVal = Get-Content -Path .\output2.txt -Raw | Trim() # 将JSON文本转换为PowerShell可直接操作的自定义对象 $deployerObj = $templatecontent | ConvertFrom-Json # 直接修改对应字段的取值 $deployerObj.url = $urlVal $deployerObj.urlglobal = $urlGlobalVal # 将修改后的对象转回JSON格式后覆盖保存原文件,-Depth参数避免层级过深时内容被截断 $deployerObj | ConvertTo-Json -Depth 10 | Out-File -Path .\deployer.json -Encoding utf8
补充说明:
- 该方案直接操作JSON对象,比纯字符串替换的稳定性更高,不会因为JSON格式调整就失效
- 如果你使用的是PowerShell 7+版本,可以在
ConvertTo-Json时增加-EscapeHandling EscapeNonAscii等参数适配特殊字符的输出需求
内容的提问来源于stack exchange,提问作者doctore
相关产品推荐
相关产品推荐

