Convertto-html多列

时间:2015-02-08 16:39:53

标签: powershell formatting

我有一个计算机名列表,我想将此列表转换为HTML,输出为4列。当我在我的控制台中管道$Computerlist | format-wide -column 4时,我得到了4列中格式良好的输出。

但是当我尝试将其转换为HTML时:$Computerlist | format-wide -column 4 | Convertto-html它只返回一个空页。

如果没有格式化$Computerlist | Convertto-html,我会在一列中找到我的计算机名列表。

1 个答案:

答案 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]