Я пишу скрипт, изменяющий значение памяти в файле конфигурации.Я хочу найти определенный набор строк в этом файле, и я попытался использовать PowerShell для выполнения этой работы.
Он отлично работает для замены одной строки, но попытка сопоставить несколько строк не приводит кРезультаты.Сценарий выглядит следующим образом:
Ниже приведен раздел конфигурации, который я пытаюсь проанализировать:
{
"taskType": "BuildDynamicMPLSCloud",
"version": 1,
"subTasks": [],
"execName": "BuildDynamicMPLSCloud",
"execCategory": 1
"maximumMemory": 4294967296
},
{
"taskType": "BuildDynamicMap",
"version": 1,
"subTasks": [],
"execName": "BuildDynamicMap",
"execCategory": 1,
"maximumMemory": 4294967296
},
Проверка одной строки для поиска и замены работ:
$NewContent=Get-Content "C:\Program Files\NetBrain\Worker Server\conf\rmworker.json" | ForEach-Object { $_-replace """maximumMemory"": 4294967296", """execName"": ""BuildDynamicMap"",`r`n`t ""execCategory"": 1,`r`n`t ""maximumMemory"": 8589934592" }
Set-Content -Path "C:\Program Files\NetBrain\Worker Server\conf\rmworker.json" -Value $NewContent
Вывод кода из приведенного выше приведен ниже:
{
"taskType": "BuildDynamicMPLSCloud",
"version": 1,
"subTasks": [],
"execName": "BuildDynamicMPLSCloud",
"execCategory": 1
"execName": "BuildDynamicMap",
"execCategory": 1,
"maximumMemory": 8589934592
},
{
"taskType": "BuildDynamicMap",
"version": 1,
"subTasks": [],
"execName": "BuildDynamicMap",
"execCategory": 1,
"execName": "BuildDynamicMap",
"execCategory": 1,
"maximumMemory": 8589934592
},
Но при попытке сопоставить несколько строк для одного и того же сценария замены не удается:
$NewContent=Get-Content "C:\Program Files\NetBrain\Worker Server\conf\rmworker.json" | ForEach-Object { $_-replace """execName"": ""BuildDynamicMap"",`r`n`t ""execCategory"": 1,`r`n`t ""maximumMemory"": 4294967296" , """execName"": ""BuildDynamicMap"",`r`n`t ""execCategory"": 1,`r`n`t ""maximumMemory"": 8589934592" }
Set-Content -Path "C:\Program Files\NetBrain\Worker Server\conf\rmworker.json" -Value $NewContent
В началекаждой новой строки есть 1 вкладка и 2 пробела в файле конфигурации.