我有一个计算机名列表,我想将此列表转换为HTML,输出为4列。当我在我的控制台中管道$Computerlist | format-wide -column 4
时,我得到了4列中格式良好的输出。
但是当我尝试将其转换为HTML时:$Computerlist | format-wide -column 4 | Convertto-html
它只返回一个空页。
如果没有格式化$Computerlist | Convertto-html
,我会在一列中找到我的计算机名列表。
答案 0 :(得分:0)
我正在尝试删除您可能不想要的已创建的标头,但这里是Format-Wide
输出的操作,它创建了一个对象来满足ConvertTo-HTML
的需求
$columns = 5
$formatWideOutput = (Get-Process | Format-Wide -Column $columns | Out-String) -split "`r`n"
$formatWideOutput | Where-Object{$_} | ForEach-Object{
$rowData = ([string]$_).Trim() -split '\s{2,}'
$row = @{}
For($rowIndex = 0;$rowIndex -lt $columns;$rowIndex++){
$row.Add("Column$($rowIndex)",$rowData[$rowIndex])
}
[pscustomobject]$row
} | ConvertTo-Html | Set-Content c:\temp\test.html
上面的示例使用Get-Process
进行输入,但一旦测试就可以更改为$Computerlist
。
Format-Wide
的输出将转换为换行符分隔的字符串。然后将每个row
拆分为一组空白区域以创建5个项目。从这些作品中制作[pscustomobject]
。