У меня нет опыта работы с PowerShell, и меня попросили создать этот сценарий как услугу для моего друга. Предполагается, что скрипт читает файл csv (эти файлы имеют разные столбцы, кроме времени и хоста, которые являются общими для всех файлов), и выводит его содержимое в файл JSON следующего формата:
CSV-файл содержит столбцы:
хозяин | сообщение | время | серьезность | источник |
{
"time": 1437522387,
"host": "dataserver992.example.com",
"event": {
"message": "Something happened",
"severity": "INFO",
"source": "testapp"
#...All columns except for time and host should be under "event"
}
}
* Единственными гарантированными столбцами являются время и хост. Все остальные заголовки столбцов варьируются от файла к файлу.
Это часть того, что я имею до сих пор:
$csvFile = Import-Csv $filePath
function jsonConverter($file)
{
#Currently not in use
$eventString = $file| select * -ExcludeProperty time, host
$file | Foreach-Object {
Write-Host '{'
Write-Host '"host":"'$_.host'",'
Write-Host '"time":"'$_.time'",'
Write-Host '"event":{'
#TODO: Put all other columns (key, values) under event - Except for
time and host
Write-Host '}'
}
}
jsonConverter($csvFile)
Любые идеи о том, как я могу извлечь только оставшиеся столбцы, строка за строкой, выводя его содержимое в ключ, значение формата JSON, как в примере выше?
Спасибо!