Найти шаблон с Powershell - PullRequest
       1

Найти шаблон с Powershell

0 голосов
/ 21 января 2019

У меня есть файл журнала с несколькими строками текста из нескольких файлов журнала.Я пытаюсь отправить содержимое файлов журнала в теле письма, используя Send-MailMessage.

Мой вопрос: я пытаюсь извлечь строки текстовой строки Exception из нескольких файлов журнала.Я хочу сопоставить это с утверждением if.Я пробовал сценарий, как показано ниже, но не повезло.Любая идея будет принята с благодарностью.

Содержимое файла журнала:

25/Dec/2018 11:50:05.224 ERROR  3805     com.crm.dao.CrmDaoJdbcImpl(L:608) - Exception created
Rerun the transaction.
               at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
               at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1522)
               at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
               at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
               at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)

После извлечения желаемого результата:

25/Dec/2018 11:50:05.224 ERROR  3805     com.crm.dao.CrmDaoJdbcImpl(L:608) - Exception created

Вот фрагмент сценария для справки.

$SourceDir = "C:\Temp\TEMP2"
#$GCI_Fiter = '*.txt'
$Include=@("*.log","*.txt")

$FileList = Get-ChildItem -LiteralPath $SourceDir -Include "$Include" -File

foreach ($FL_Item in $FileList)   {
$FLI_Content = Get-Content -LiteralPath $FL_Item.FullName -Raw

if ( ???????? )  {
$ExceptionLines = $FLI_Content | Select-String -SimpleMatch 'Exception' | ForEach-Object {$_.ToString().Trim()}

$ExceptionLines
}

else {
Write-Warning "Could not find Exception keyword from '$FL_Item.FullName'.."
}


}

Заранее спасибо,

1 Ответ

0 голосов
/ 21 января 2019

Найти все строки, содержащие слово «Exception»:

Get-Content -Path $file.FullName | Select-String "Exception"

Если вы хотите проверить, есть ли какие-либо строки, содержащие слово «Исключение», то это так же просто, как присвоить результаты вышеуказанной команды переменной и проверить значение!

$results = Get-Content -Path $file.FullName | Select-String "Exception"

if ($results) {
    Write-Output "Exception found"
}
else {
    Write-Output "No exception found"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...