Этот скрипт выполняет синтаксический анализ объекта, используя несколько замен RegEx для формирования CSV, а затем с помощью командлета ConvertFrom-Csv
:
$table= (gc .\sample.txt -raw ) -replace "-{10,100}`r?`n" -replace "`r?`n *`r?`n"
$table -split "`r?`n" | %{
If ($_ -notmatch 'Timed out'){
"`"{0}`"" -f ($_ -replace " {2,15}",'","')
}
}|ConvertFrom-Csv | ConvertTo-html | Set-Content .\Sample.html -Encoding UTF8
Пример ConvertFrom-Csv
output
Machine ID Proc Name Proc Inst Status Comment
---------- --------- --------- ------ -------
1 BG 1 RUNNING BG process started
1 BG 2 RUNNING BG process started
...snip..
Передано ConvertTo-html
<!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>
<table>
<colgroup><col/><col/><col/><col/><col/></colgroup>
<tr><th>Machine ID</th><th>Proc Name</th><th>Proc Inst</th><th>Status</th><th>Comment</th></tr>
<tr><td>1</td><td>BG</td><td>1</td><td>RUNNING</td><td>BG process started</td></tr>
<tr><td>1</td><td>BG</td><td>2</td><td>RUNNING</td><td>BG process started</td></tr>
...snip...
И сохранено в файл, который вы можете просмотреть в браузере: