无法使用powershell更新json文件
我试图用新值更新下面的json文件,并将文件保存在新路径中。但无法获得所需的结果,无法使用powershell更新json文件,json,windows,powershell,scripting,Json,Windows,Powershell,Scripting,我试图用新值更新下面的json文件,并将文件保存在新路径中。但无法获得所需的结果,$updatedfilepath中的新文件将与$jsonfilepath中的文件相同 我尝试了设置内容powershell cmd let,但运气不佳。所以,请有人能在这方面帮助我,指导我的代码哪里出了问题 我的代码: $JsonData = Get-Content $JsonFilePath -Raw | ConvertFrom-Json $JsonData | Where { $JsonData.modules
$updatedfilepath
中的新文件将与$jsonfilepath
中的文件相同
我尝试了设置内容
powershell cmd let,但运气不佳。所以,请有人能在这方面帮助我,指导我的代码哪里出了问题
我的代码:
$JsonData = Get-Content $JsonFilePath -Raw | ConvertFrom-Json
$JsonData | Where { $JsonData.modules.name -eq "qact" } | % { $JsonData.modules.load.local -replace ("qa/styles/act.css", "qa/styles/act.2.css") -replace ("qa/js/act.2.js", "qa/js/act.2.js") }
$JsonData | ConvertTo-Json -Depth 4 | % { $_ -replace " "," " } | Tee-Object $updatedJsonFilePath
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
qa/styles/oct.2.css
qa/js/oct.dependencies.js
qa/js/oct.wijmo.xlxs.workbook.js
qa/js/oct.signalr.js
qa/js/oct.2.js
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.2.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.2.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
我的文件:
$JsonData = Get-Content $JsonFilePath -Raw | ConvertFrom-Json
$JsonData | Where { $JsonData.modules.name -eq "qact" } | % { $JsonData.modules.load.local -replace ("qa/styles/act.css", "qa/styles/act.2.css") -replace ("qa/js/act.2.js", "qa/js/act.2.js") }
$JsonData | ConvertTo-Json -Depth 4 | % { $_ -replace " "," " } | Tee-Object $updatedJsonFilePath
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
qa/styles/oct.2.css
qa/js/oct.dependencies.js
qa/js/oct.wijmo.xlxs.workbook.js
qa/js/oct.signalr.js
qa/js/oct.2.js
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.2.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.2.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
以上代码的我的输出:
$JsonData = Get-Content $JsonFilePath -Raw | ConvertFrom-Json
$JsonData | Where { $JsonData.modules.name -eq "qact" } | % { $JsonData.modules.load.local -replace ("qa/styles/act.css", "qa/styles/act.2.css") -replace ("qa/js/act.2.js", "qa/js/act.2.js") }
$JsonData | ConvertTo-Json -Depth 4 | % { $_ -replace " "," " } | Tee-Object $updatedJsonFilePath
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
qa/styles/oct.2.css
qa/js/oct.dependencies.js
qa/js/oct.wijmo.xlxs.workbook.js
qa/js/oct.signalr.js
qa/js/oct.2.js
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.2.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.2.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
我想要的结果:
$JsonData = Get-Content $JsonFilePath -Raw | ConvertFrom-Json
$JsonData | Where { $JsonData.modules.name -eq "qact" } | % { $JsonData.modules.load.local -replace ("qa/styles/act.css", "qa/styles/act.2.css") -replace ("qa/js/act.2.js", "qa/js/act.2.js") }
$JsonData | ConvertTo-Json -Depth 4 | % { $_ -replace " "," " } | Tee-Object $updatedJsonFilePath
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
qa/styles/oct.2.css
qa/js/oct.dependencies.js
qa/js/oct.wijmo.xlxs.workbook.js
qa/js/oct.signalr.js
qa/js/oct.2.js
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
{
"depends": "bento/1.13.0",
"paths": [
{
"patterns": [ "/act/home/?.*" ],
"use": "qact"
},
{
"patterns": [ "/act/WS/home/?.*" ],
"use": "qaws"
}
],
"modules": [
{
"name": "qact",
"earlyLoad": true,
"load": {
"local": [ "qa/styles/act.2.css",
"qa/js/act.dependencies.js",
"qa/js/act.wijmo.xlxs.workbook.js",
"qa/js/act.signalr.js",
"qa/js/act.2.js"
]
}
},
{
"name": "qaws",
"earlyLoad": true,
"load": {
"local": [
"ws/styles/act.css",
"ws/js/act.dependencies.js",
"ws/js/act.wijmo.xlxs.workbook.js",
"ws/js/act.signalr.js",
"ws/js/act.js"
]
}
}
]
}
我想通过一个简单的字符串替换就可以了
$jsonFilePath = "c:\folder\input.json" #replace with path to your input file
$updatedJsonFilePath = "c:\folder\output.json" #replace with path to your output file
$jsonData = Get-Content $jsonFilePath
$jsonData -ireplace ("styles/act.css", "styles/act.2.css") -ireplace ("js/act.js", "js/act.2.js") | Out-File $updatedJsonFilePath
谢谢你的快速解决方案。