Как преобразовать часть содержимого файла журнала в табличный формат с помощью powershell - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь прочитать некоторые нижние строки из моего файла журнала и отправить содержимое в виде таблицы в электронном письме.

Файл журнала:

      0 \\Server\Copy\db_materials\TEST\

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :       508         0       508         0         0         0
   Files :      9109         0      9109         0         0         0
   Bytes :   1.115 g         0   1.115 g         0         0         0
   Times :   0:01:03   0:00:00                       0:00:00   0:01:03
   Ended : Thursday, March 19, 2020 11:03:22 PM

Сценарий Powershell:

$body= (Get-Content -Path D:\logs\logfile.log -Tail 8 | Out-String) |ConvertFrom-Csv | ConvertTo-html | Set-Content D:\RMSscripts\Sample.html -Encoding UTF8

$EmailFrom = "xyz@abc.com"
$EmailTo = "myemail@abc.com"
$EmailSubject = "Report"
$SMTPServer = "smtp.server.com"

end-MailMessage -Port 25 -SmtpServer $SMTPServer -From $EmailFrom -To $EmailTo -Subject $EmailSubject -Body $body-Bodyashtml;

В электронном письме содержимое вставляется, как показано ниже.

       Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :       508         0       508         0         0         0
   Files :      9109         0      9109         0         0         0
   Bytes :   1.115 g         0   1.115 g         0         0         0
   Times :   0:01:03   0:00:00                       0:00:00   0:01:03
   Ended : Thursday, March 19, 2020 11:03:22 PM

Ожидается: Ожидается отчет по электронной почте

Как преобразовать сырое содержимое в табличном формате?

1 Ответ

0 голосов
/ 20 марта 2020

Как указано в комментарии: существует слишком много расхождений, чтобы легко воссоздать таблицу из файла журнала. Вместо создания таблицы html я бы хотел просто обернуть соответствующую текстовую таблицу в тег Предварительно отформатированный текст <PRE>:

<code># $Table = (Get-Content -Path D:\logs\logfile.log -Tail 8 | Out-String)
$Table = @'
               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :       508         0       508         0         0         0
   Files :      9109         0      9109         0         0         0
   Bytes :   1.115 g         0   1.115 g         0         0         0
   Times :   0:01:03   0:00:00                       0:00:00   0:01:03
   Ended : Thursday, March 19, 2020 11:03:22 PM
'@

$Body = @"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<pre>
$Table
"@
...