ConvertTo-Html未正确显示数据

时间:2017-01-04 00:39:56

标签: powershell

我有一个非常简单的脚本,我列出了我服务器上的所有网站。我正在使用此输出在Format-Table中创建自定义列以显示所需信息。然后,我想使用ConvertTo-Html cmdlet在HTML文件中表示整个信息。

但是当我在代码下面运行时,它只会产生垃圾。但是,如果我对.txt执行Out-File(无HTML转换),则会记录正确的信息。此外,如果我只在屏幕上显示结果,它仍会显示正确的信息。

cls
Import-Module WebAdministration
Get-Website |
  Format-Table @{n = 'Site_Name'; e = {$_.Name}},
    @{n = 'Physical Path'; e = {$_.physicalpath}},
    @{n = 'Version'; e = {($_.physicalpath.split("\"))[-1]}} -AutoSize |
  ConvertTo-Html |
  Out-File -FilePath D:\test.html

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Format-Table创建适合在控制台中显示的格式化输出,但不能将其传递给ConvertTo-Html

Format-Table替换为Select-Object

Get-Website |
  Select-Object @{n='Site_Name';e={$_.Name}},
    @{n='Physical Path';e={$_.physicalpath}},
    @{n='Version';e={($_.physicalpath.split("\"))[-1]}} |
  ConvertTo-Html |
  Out-File -FilePath D:\test.html

问题就会消失。

如果您将Format-TableSelect-Object输出传递到Get-Member,则可以看到差异:

... | Format-Table ... -AutoSize | Get-Member
... | Select-Object ... | Get-Member