使用powershell将字符串替换为不同的内容



我有一组文件夹,其中有一些json文件。我正试图编写一个powershell脚本来转换文件夹中所有json的下面一行:

"objectStatus": "ACTIVE",

json文件中的上述行,键和值之间可以有一个以上的空格:

"objectStatus":     "ACTIVE",

我写的脚本是:

$jsonFiles = Get-ChildItem . *.json -rec
foreach ($file in $jsonFiles)
{
(Get-Content $file.PSPath) |
Foreach-Object {$_ -replace '"ACTIVE"','"INACTIVE"'} |
Set-Content $file.PSPath
}

可以看到上面的代码将字符串'"ACTIVE"'替换为'"INACTIVE"'。但是,只有当键为objectstatus时,我才想替换' ' active' '字符串。此外,键和值之间可以有多个空格。我如何处理,而替换字符串?

提前感谢!

您可以像这样通过完整字符串进行搜索。'"objectStatus":s*"ACTIVE"','"objectStatus": "INACTIVE"'

$jsonFiles = Get-ChildItem . *.json -rec
foreach ($file in $jsonFiles)
{
(Get-Content $file.PSPath) |
Foreach-Object {$_ -replace '"objectStatus":s*"ACTIVE"','"objectStatus": "INACTIVE"'} |
Set-Content $file.PSPath
}