Я пытаюсь найти несколько журналов с разными именами файлов. Я хочу найти имя хоста в каждом журнале, и когда совпадение будет найдено, скопируйте всю эту строку в summary_ [date] .log и продолжайте добавлять к нему совпадающие строки. Итак, я начал с:
$captured = Get-ChildItem -recurse -Path \\nas1\share1 -Include *.log |
where { ($_.Name | Select-String -pattern ('PC1','PC2','PC3') -SimpleMatch) }
Now copy the line from each log file which contains the pattern and append it to a file with today's date stamp, so each week I'll have a file like \\nas1\share1\summary_03-07-2020.log
Но это не совсем то, что я хочу, так как это захватывает имена файлов и добавляет их в переменную $ captured. Также отсутствует код для копирования любых совпадающих строк в метку даты summary_ [date] .log
Каждый текстовый файл будет содержать среди других строк, начинающихся с метки времени, что-то вроде этого:
03-07-2020_14-36-17 - Резервная копия компьютера [PC1] успешно создана.
Итак, я хочу найти несколько текстовых файлов в общей папке по нескольким именам хостов. , Если текстовый файл содержит имя хоста, добавьте строку с именем хоста к summary_ [date] .log. И наконец, поскольку все совпадающие строки начинаются с отметки даты / времени, мне нужно сохранить содержимое файла summary_ [date] .log, отсортированного от самой новой даты к самой старой.
По сути, я должен получить итоговую_ [date] .log каждую неделю, которая будет выглядеть примерно так:
03-07-2020_14-36-17 - Backup of computer [PC1] is successfully created.
03-07-2020_13-21-12 - Backup of computer [PC3] is successfully created.
03-07-2020_11-36-29 - Backup of computer [PC2] is successfully created.
Делая это, я получаю сводку всех файлов журнала за этот день в одном файле, который затем автоматически отправляю по электронной почте указанным c адрес электронной почты.
Как мне выполнить sh это?