输出powershell变量为HTML表



我在powershell中具有一个变量,该变量由列表的19个迭代组成。每个迭代都有5个变量,我想将其分为3列。我想在HTML表中查看它。如果我只是在文本文件中输出它,则所有信息都在那里,但是当我尝试使用convertto-html时,它会损坏或丢失。我究竟做错了什么?

convertto-html $currentLog -fragment | out-file file.txt

给我:

<table>
</table>

$currentLog | out-file file.txt

给我:

SHO: Stevens Point, WI, PING TEST: GOOD ( 1 ms), PRIMARY CIRCUIT: N/A ( - ms)
MAD: Madison, WI, PING TEST: GOOD ( 8 ms), PRIMARY CIRCUIT: GOOD ( 8 ms)
DAV: Davenport, IA, PING TEST: GOOD ( 30 ms), PRIMARY CIRCUIT: GOOD ( 31 ms)
FRE: Freeport, IL, PING TEST: GOOD ( 16 ms), PRIMARY CIRCUIT: GOOD ( 16 ms)
GOL: Goldsboro, NC, PING TEST: GOOD ( 71 ms), PRIMARY CIRCUIT: GOOD ( 71 ms)
IRV: Irvine, CA, PING TEST: GOOD ( 73 ms), PRIMARY CIRCUIT: GOOD ( 73 ms)
MON: Montgomery, AL - Regional Office, PING TEST: GOOD ( 72 ms), PRIMARY CIRCUIT: GOOD ( 72 ms)
RIC: Richmond, VA, PING TEST: GOOD ( 52 ms), PRIMARY CIRCUIT: GOOD ( 53 ms)
SAL: Salem, OR, PING TEST: GOOD ( 87 ms), PRIMARY CIRCUIT: GOOD ( 88 ms)
SCO: Scottsdale, AZ, PING TEST: GOOD ( 95 ms), PRIMARY CIRCUIT: GOOD ( 95 ms)
WES: Westford, MA, PING TEST: N/A ( - ms), PRIMARY CIRCUIT: GOOD ( 65 ms)
MIL: Milwaukee, WI - Regional Office, PING TEST: N/A ( - ms), PRIMARY CIRCUIT: GOOD ( 10 ms)
EDW: Edwardsville, IL, PING TEST: GOOD ( 28 ms), PRIMARY CIRCUIT: GOOD ( 36 ms)
CHA: Charlotte, NC - Regional Office, PING TEST: N/A ( - ms), PRIMARY CIRCUIT: GOOD ( 47 ms)
AVI: Stevens Point, WI, PING TEST: FAILED ( N/A ms), PRIMARY CIRCUIT: GOOD ( 1 ms)
PLO: Plover, WI, PING TEST: N/A ( - ms), PRIMARY CIRCUIT: GOOD ( 1 ms)
MADG: Madison, WI, PING TEST: N/A ( - ms), PRIMARY CIRCUIT: GOOD ( 7 ms)
MADC: Madison, WI, PING TEST: N/A ( - ms), PRIMARY CIRCUIT: GOOD ( 7 ms)
MADR: Madison, WI - Regional Office, PING TEST: N/A ( - ms), PRIMARY CIRCUIT: GOOD ( 8 ms)

代码定义$ CurrentLog中每行的输出的代码为:

$tempLine = "$($testResults.location): $($testResults.city), PING TEST: $($testResults.pingResult) ( $($testResults.pingTime) ms), PRIMARY CIRCUIT: $($testResults.circuitPrimary) ( $($testResults.circuitPrimaryTime) ms)`r`n"
$array = $array| % {
    [pscustomobject]@{ log = $_}
}
$array  | select log  | convertto-html | out-file c:tempfile.html

编辑:

如果您想要单个列:

您需要将其调整为$ testResult。您需要$ testResult对象的数组。重要的是要了解如何构建桌子。

$Header = @"
<style>
TABLE {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
TH {border-width: 1px;padding: 3px;border-style: solid;border-color: black;background-color: #6495ED;}
TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;}
</style>
"@        
$testResultArray  | select location,city, pingResult, circuitPrimary, circuitPrimaryTime  | convertto-html -head $Header | out-file c:tempfile.html

可能有更好的方法来做到这一点。

$tempLine = "<tr><td>$($testResults.city)</td><td>$($testResults.pingResult) $($testResults.pingTime)</td><td>$($testResults.circuitPrimary) $($testResults.circuitPrimaryTime)</td></tr>`r`n"
$table = "<table>$currentLog</table>"
ConvertTo-HTML -head $head -body $table | out-file -FilePath $webfile

最新更新