В этой теме Мне помогли собрать скрипт, который разбивает строки текстовых файлов на токены, подсчитывает вхождения определенного токена и отправляет вывод в представленную таблицу. Выглядит так:
$alarmList = @(Get-Content -Path '.\A.ALM') | foreach {
$token = $_ -split ' +'
[PSCustomObject]@{
date = $token[0]
time = $token[1]
H2 = $token[2]
H3 = $token[3]
H4 = $token[4]
H5 = $token[5]
H6 = $token[6]
H7 = $token[7]
H8 = $token[8]
}
}
$alarmList | Group H4 -NoElement | Select Name,Count | Out-Gridview
Далее я хочу выполнить скрипт для запуска файлов в папке. Затем составьте счет и представьте его таким же образом. В основном это скрипт для статистики по тревогам.
Я застрял на части для запуска сценария для нескольких файлов. Кажется, это работает правильно:
foreach ($i in Get-ChildItem .\) {$alarmList = @(Get-Content -Path $i)}
Когда я пытаюсь связать больше функций, это не работает.
foreach ($i in Get-ChildItem .\) {$alarmList = @(Get-Content -Path $i)} |
foreach {
$token = $_ -split ' +'
[PSCustomObject]@{
date = $token[0]
time = $token[1]
H2 = $token[2]
H3 = $token[3]
H4 = $token[4]
H5 = $token[5]
H6 = $token[6]
H7 = $token[7]
H8 = $token[8]
}
}
$alarmList | Group H4 -NoElement | Select Name,Count | Out-File $.txt
Я подозреваю, что синтаксис для второго цикла for неправильный, так как powershell возвращает
Пустой элемент трубы не допускается.
Был бы признателен кивок в правильном направлении.
Файлы данных выглядят так, и все они называются как .alm:
2018-05-19 00:26:00,551 [LUNSC1 ] D_TA204_GT1_DV_AL CFN LARM D_TA204_GT1_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT41_DV_AL CFN LARM D_TA204_GT41_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT31_DV_AL CFN LARM D_TA204_GT31_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT21_DV_AL CFN LARM D_TA204_GT21_Reglerfel
2018-05-19 00:35:19,627 [LUNSC1 ] U_TA364_GT11_LARM CFN LARM U_TA364_GT11_LARM
2018-05-19 00:39:56,135 [LUNSC1 ] U_TA364_GT11_LARM CFN LARM U_TA364_GT11_LARM
Например, у меня есть 5 файлов, которые содержат данные, как указано выше.