我正在尝试使用Powershell在密钥对json文件中添加值。我收到一个错误。需要有关PS脚本的一些指导。
Powershell 5.1版本和其中带有密钥对的json文件。
MYJSON文件:
{ "Theme":{"Res_List": {
"Method": "POST",
"Name":""}}}
PowerShell脚本:
$file_path="C:\Users\RelativeConfig.json"
$json = Get-Content $file_path | Out-String | ConvertFrom-Json
$timestamp = Get-Date -Format ddMMHHmm
$namevalue = 'resource'+$timestamp+'e3'
echo $namevalue ##prints resource16sep2019 I want this to write in json as value for Name Key
$files = $json | Get-Member -MemberType Properties | Select-Object - ExpandProperty Name
$result = Foreach ($file in $json)
{
if ($file.Name -eq "Name") { $file.Value = $namevalue}
}
$result | ConvertTo-Json | Set-Content $json
错误:
没有错误,但json没有用新值更新。
预期:
{ "Theme":{"Res_List": {
"Method": "POST",
"Name":"resource16sep2019 "}}}
实际:
{ "Theme":{"Res_List": {
"Method": "POST",
"Name":""}}}
答案 0 :(得分:2)
要更新json中的值,您可以执行以下操作
$bucket_name = "resource16sep2019" ## I want this to write in json as value for Name Key
$json.Theme.Res_List.Name = $bucket_name
它将用JSON中的$bucket_name
值直接替换Name
值。
如果要将其写入相应的文件,请使用以下命令,
$json | ConvertTo-Json -depth 32| set-content $file_path
希望有帮助!干杯