Код выхода для входа в выходной файл - PullRequest
0 голосов
/ 13 марта 2019

У меня есть файл журнала, и мне нужно записать определенные строки в выходной файл с кодами выхода.Например, если строка содержит ОШИБКА , мне нужен выходной файл для записи номера строки и диапазона кодов выхода 0-20.Вот пример файла журнала.

Например, мой выходной файл должен выглядеть следующим образом:

1 1
2 10
3 2
4 3
5 4

Вот пример файла журнала:

2019-01-14 21:36:37 INFO: Executing user is OFFICE\adaccountdeletion
2019-01-14 21:36:37 WARNING: Reading configuration file E:\AdAccountDeletion\Script\v1.1.7\Jan 14\Remove-StallUserObjects.xml
2019-01-14 21:36:37 INFO: Successfully parsed configuration file

1 Ответ

0 голосов
/ 13 марта 2019

Для рандомизированных кодов (по одному коду на запуск скрипта):

$file = Get-Content Log.txt
$lineNumber = 0
$errorCode = (0..20) | get-random
$warningCode = (21..40) | get-random
$output = ForEach ($line in $file) {
    $lineNumber++
    if ($line -cmatch " ERROR: ") {
        "$lineNumber $errorCode"

    }
    if ($line -cmatch " WARNING: ") {
        "$lineNumber $warningCode"

    }
}
$output

Для велосипедных кодов (один код на матч):

$file = Get-Content Log.txt
$lineNumber = 0
$errorCode = 0
$warningCode = 21
$output = ForEach ($line in $file) {
    $lineNumber++
    if ($errorCode -eq 21) {
        $errorCode = 0
    }
    if ($warningCode -eq 41) {
        $warningCode = 21
    }
    if ($line -cmatch " ERROR: ") {
        "$lineNumber $errorCode"
        $errorCode++

    }
    if ($line -cmatch " WARNING: ") {
        "$lineNumber $warningCode"
        $warningCode++

    }
}
$output # outputs line numbers and exit codes to console
$output | out-file "errorLog.txt" # outputs line numbers and exit codes to file errorlog.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...