Файл журнала отображается пустым - PullRequest
0 голосов
/ 20 марта 2019

У меня есть скрипт, который выводит файл журнала, теперь мне нужно прочитать этот файл журнала и создать новый файл журнала, когда он находит слова WARNING & ERROR, и мне нужно, чтобы он записал номер строки и вывел код ошибки из 0-20 для ОШИБКИ и 21-40 для ПРЕДУПРЕЖДЕНИЯ, но каждый раз, когда я запускаю скрипт, мой ExitCodeLog.lg пуст.

$file =  'H:\REPO\ADNEW\Testlog.log'#@(Get-ChildItem -Filter Remove-StallUserObjects_*.log)[-1]
$lineNumber = 0
$errorCode = 0
$warningCode = 21
$output = ForEach ($line in $file) {
    $lineNumber++
    if ($errorCode -eq 20) {
        $errorCode = 0
    }
    if ($warningCode -eq 40) {
        $warningCode = 21
    }
    if ($line -cmatch " ERROR: ") {
        "$lineNumber $errorCode"
        $errorCode++

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

    }
}
$output | Out-File -FilePath 'H:\REPO\ADNEW\ExitCodeLog.log'

1 Ответ

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

Первая проблема заключается в том, что содержимое $file является простой строкой.

Вы должны использовать

$file = get-content 'H:\REPO\ADNEW\Testlog.log'

Более того, вы можете оптимизировать первые два оператора if, используяОператор по модулю:

$errorcode = $errorcode % 20
$warningcode = 21 + ($warningcode % 20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...