【问题标题】:Modify JSON file using Powershell [duplicate]使用 Powershell 修改 JSON 文件 [重复]
【发布时间】:2018-03-17 02:34:39
【问题描述】:

您好,我正在尝试使用 PowerShell 修改 JSON 文件。我想从 PowerhShell 传递一个变量,它将替换 JSON 文件中的两个值(Placeholder1 和 Placeholder2)。对于第一个不起作用的值,我有以下内容。

PowerShell

$a = Get-Content $pathToJson -raw | ConvertFrom-Json
$a.update | % {if($_.name -eq 'placeholder1'){$_.name=$record_name}}
$a | ConvertTo-Json -Depth 20 | set-content $pathToJson

JSON

{
  "Comment": "Update record for Route 53",
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "placeholder1",
        "Type": "CNAME",
        "TTL": 300,
        "ResourceRecords": [
          {
            "Value": "placeholder2"
          }
        ]
      }
    }
  ]
}

【问题讨论】:

  • 您的示例文件中没有更新属性。这意味着你的循环没有做任何事情

标签: json powershell


【解决方案1】:

您可以尝试只替换文本,而不是与 JSON 相互转换,如下所示:

(Get-Content $pathToJson).Replace("placeholder1", $record_name) | Set-Content $pathToJson

您可以将 .Replace() 函数与另一个函数链接起来,以将 placeholder2 更新为其应为的任何值。

【讨论】:

  • 一般来说,直接操作结构化数据中的字符串是错误的做法。
  • 感谢@Valuator 就像一个魅力一样,我按照你的建议将另一个占位符锁在那里。
猜你喜欢
  • 2016-02-29
  • 2020-08-18
  • 2017-12-30
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多