Извлечь файлы из файла журнала - PullRequest
0 голосов
/ 06 марта 2019

Мне нужна помощь с файлом журнала, который мне нужен для извлечения информации в другой файл, и мне трудно решить, какой метод использовать.

LogFile:
2019-01-14 21:36:36 INFO: Starting script execution
2019-01-14 21:36:36 INFO: Execution date is 1/14/2019 9:36:36 PM
2019-01-14 21:36:36 INFO: Script version is 1.1.6
2019-01-14 21:36:37 INFO: Executing forest is adroot.
2019-01-14 21:36:37 WARNING: Executing domain is office.adroot.
2019-01-14 21:36:37 INFO: Executing user is OFFICE\adaccountdeletion

По сути, мне нужно найти в файле журнала INFO сценарийпродолжается, и ПРЕДУПРЕЖДЕНИЕ скрипт захватывает эту строку и выводит ее в файл журнала.Я не уверен, должен ли я использовать выражения Regex или If else и как бы я это сделал.Пока у меня есть это:

$input_path = 'H:\REPO\ADCLEAN\testlog.log'
$output_file = 'H:\REPO\ADCLEAN\Output.txt'
Get-Content ‘INFO’ >>$output_file
select-string -Path $input_path -Pattern $content -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Следующие строки будут содержать строки, содержащие ПРЕДУПРЕЖДЕНИЕ: и вывод (с помощью добавления) в ваш файл:

"WARNING" | Add-Content $output_file
(Get-Content $input_path) -cmatch "WARNING:" | Add-Content $output_file

Следующее будет захватывать строки, которые содержат INFO: и выводить (используя append) в ваш файл:

"INFO" | Add-Content $output_file
(Get-Content $input_path) -cmatch "INFO:" | Add-Content $output_file
0 голосов
/ 06 марта 2019

Попробуйте это:

$input_path = 'H:\REPO\ADCLEAN\testlog.log'
$output_file = 'H:\REPO\ADCLEAN\Output.txt'

$content   = [System.IO.File]::ReadLines($input_path)
$warnings  = $content.Where( { $_ -like '*WARNING*' } )
[void][System.IO.File]::WriteAllLines($output_file, $warnings)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...