html - 输出带有自己的 <TR> ID 的合并 HTML

标签 html windows powershell

我有一个获取 tcp 连接的脚本 Get-NetTCPConnection$flam 变量可以获取每个对象的最后一条记录,$rfrt 变量可以获取所有输出对象,没有最后一个。 由于我显示 $CntTableBodyr 变量是我的错误,我想添加 $flam$rfrt 变量作为 HTML 表 具有以下详细信息:

Id=111识别的$flam的每个tr,到第一行$rfrt 已被 Id=222 识别到包含上述第一行洋地黄的那些行!

不明白?我的意思是:

截图: enter image description here

解释: 例如,在我的 $GetCon 变量中,它包括所有 tcp 连接 [如您所知]。如上图所示,我的完整输出计数是 [7 Count],例如 [OwningProcess for 1177] 有 3 个计数结果,依此类推,我想获取 1177 的最后一个对象作为第一行,id=111 然后是第二行和所有关于 1177 的连接到底部。其他连接与 1177 和 [LocalAddress] 相同。

示例:

$GetCon = Get-NetTCPConnection
$ss = $GetCon | select OwningProcess | Group-Object -Property OwningProcess | select Count, Name

$cccs = $ss | Select -ExpandProperty Name

$flam = ForEach ($oio in $cccs) {
$GetCon | Where-Object {$_.OwningProcess -eq $oio} | select -Last 1
}


$yyoiu = $GetCon | Group-Object -Property OwningProcess

for ($irt = 0; $irt -lt $yyoiu.Count; $irt++)
{ 

$rfrt = foreach($grpop in $yyoiu[0..$irt]){
$jrtgrpcnt = [int]($grpop.Group.Count - 1)
$grpop.Group | select -First (0+$jrtgrpcnt)

  }
}


$CntTableBodyr=""
#$frcntArrr = $flam | select -ExpandProperty OwningProcess #$frcntr.GetEnumerator() |%{$_}
ForEach ($Rowr in $flam) {
  $CntTableBodyr+="<tr id='111' style='background-color: lightblue;'><td>$($Rowr.OwningProcess)</td><td>$($Rowr.LocalAddress)</td></tr>
  <tr id='222' style='background-color: lightgray;'><td>$($rfrt.OwningProcess)</td><td>$($rfrt.LocalAddress)</td></tr>"
}

$html=@"
<table id='tblId'>
$CntTableBodyr
</table>
"@

ConvertTo-Html -Body $html | Out-File c:\out.html
Invoke-Item c:\out.html

最佳答案

只取最重要的部分(因为我无法访问相同的资源):

$flam = ConvertFrom-CSV @"
OwningProcess,LocalAddress
1177,127.0.0.1
1177,192.168.1.2
1177,192.168.1.1
2211,192.168.1.1
2211,127.0.0.1
3122,192.168.1.1
3122,192.168.1.1
"@

$OwningProcesses = @()
$flam | ForEach {
    $id = If ($OwningProcesses -Contains $_.OwningProcess) {"222"} Else {$OwningProcesses += $_.OwningProcess; "111"}
    $_ | Add-Member -Force id $id
}

结果:

PS C:\> $flam

OwningProcess LocalAddress id
------------- ------------ --
1177          127.0.0.1    111
1177          192.168.1.2  222
1177          192.168.1.1  222
2211          192.168.1.1  111
2211          127.0.0.1    222
3122          192.168.1.1  111
3122          192.168.1.1  222

将其包含在 HTML 文件中:

$CntTableBodyr=""
#$frcntArrr = $flam | select -ExpandProperty OwningProcess #$frcntr.GetEnumerator() |%{$_}
$flam | {
  $CntTableBodyr+="<tr id='$($_.id)' style='background-color: lightblue;'><td>$($_.OwningProcess)</td><td>$($_.LocalAddress)</td></tr>"
}

$html=@"
<table id='tblId'>
$CntTableBodyr
</table>
"@

ConvertTo-Html -Body $html | Out-File c:\out.html

关于html - 输出带有自己的 <TR> ID 的合并 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136757/

相关文章:

javascript - 加载未显示在框内

jquery 代码导致不需要的空间

windows - 创建大于桌面的窗口(显示分辨率)

Powershell 4.0 Transcript 未捕获 Write-Host 语句的输出

javascript - 在 jQuery 工具提示插件中添加新行

windows - 如何将扩展 APDU 与 Windows 智能卡框架一起使用

c# - Windows 2000 SP4 上的单声道

powershell - 如何递归获取PowerShell中自定义输出中所有文件和文件夹的大小

powershell - VS2015 中的 Service Fabric,PowerShell 脚本执行失败

javascript - 如何在剑道中的单击事件中获取包含复选框的行