Заменить значение в json, используя powershell - PullRequest
0 голосов
/ 25 мая 2018

У меня есть файл json со следующим содержимым -

{
"IsEnabled": true,
"EngineConfiguration": {
    "PollInterval": "00:00:15",
    "Components": [{
        "Id": "Logs",
        "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
            "LogDirectoryPath": "C:\\log\\2018-05-25",
            "TimestampFormat": "yyyy-MM-dd HH:mm:ss",
            "Encoding": "UTF-8",
            "Filter": "",
            "CultureName": "en-US",
            "TimeZoneKind": "UTC",
            "LineCount": "1"
        }
    }]
  }
}

Я хочу заменять эту дату (упоминается в LogDirectoryPath) каждый день, используя управляемую задачу с помощью powershell.

Может кто-нибудь пожалуйстадать самый простой способ заменить это каждый день, используя powershell?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Этот скрипт поможет вам обновить каталог журнала.

Шаги:

  1. Получить содержимое файла json.
  2. Обновить значение атрибута, если оно существует.$ JsonData.update |% {if (...)
  3. Сохранить содержимое в том же файле.

Сценарий:

$JsonData = Get-Content $JsonFilePath -raw | ConvertFrom-Json

$JsonData.update | % { if($JsonData.engineconfiguration.Components.Parameters.LogDirectoryPath)
                            {
                                $JsonData.engineconfiguration.Components.Parameters.LogDirectoryPath = "C:\log\$(Get-Date -Format 'yyyy-MM-dd')"
                            }
                        }

$JsonData | ConvertTo-Json -Depth 4  | set-content $JsonFilePath 
0 голосов
/ 25 мая 2018

Первым шагом является преобразование содержимого в json:

$json = Convertfrom-json (get-content "\\path\To\Json\File.json")

Затем редактирование значения по желанию:

$json.engineconfiguration.Components.Parameters.LogDirectoryPath = "C:\log\$(Get-Date -Format 'yyyy-MM-dd')"

Затем запись обратно в файл:

ConvertTo-Json $json -Depth 4 | Out-File C:\ProgramData\Temp\test.txt -Force
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...