Как преобразовать часть содержимого файла журнала в формат таблицы с помощью PowerShell
Я пытаюсь прочитать некоторые из нижних строк моего файла журнала и отправить содержимое в виде таблицы в электронном письме.
Журнальный файл:
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 ответ
Как предлагается в комментарии: слишком много расхождений, чтобы легко воссоздать таблицу из вашего файла журнала. Вместо создания таблицы html я бы подумал о том, чтобы просто обернуть соответствующую текстовую таблицу в предварительно отформатированный текст<PRE>
тег:
# $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
</pre>
</body></html>
"@