ConvertTo-Html
将Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。
语法
Page (默认值)
ConvertTo-Html
[[-Property] <Object[]>]
[[-Body] <String[]>]
[[-Head] <String[]>]
[[-Title] <String>]
[-InputObject <PSObject>]
[-As <String>]
[-CssUri <Uri>]
[-PostContent <String[]>]
[-PreContent <String[]>]
[<CommonParameters>]
Fragment
ConvertTo-Html
[[-Property] <Object[]>]
[-InputObject <PSObject>]
[-As <String>]
[-Fragment]
[-PostContent <String[]>]
[-PreContent <String[]>]
[<CommonParameters>]
说明
ConvertTo-Html cmdlet 将 .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。 可以使用此 cmdlet 在网页中显示命令的输出。
可以使用 ConvertTo-Html 的参数来选择对象属性、指定表或列表格式、指定 HTML 页面标题、在对象前后添加文本,并仅返回表或列表片段,而不是严格的 DTD 页。
将多个对象提交到 ConvertTo-Html时,Windows PowerShell 会根据提交的第一个对象的属性创建表或列表。 如果其余对象没有指定属性之一,则该对象的属性值为空单元格。 如果其余对象具有其他属性,则该文件中不包含这些属性值。
示例
示例 1:创建网页以显示日期
PS C:\> ConvertTo-Html -InputObject (Get-Date)
此命令将创建一个 HTML 页面,用于显示当前日期的属性。 它使用 InputObject 参数将 Get-Date 命令的结果提交到 ConvertTo-Html cmdlet。
示例 2:创建用于显示 PowerShell 别名的网页
PS C:\> Get-Alias | ConvertTo-Html | Out-File aliases.htm
PS C:\> Invoke-Item aliases.htm
此命令将创建一个 HTML 页面,其中列出了当前控制台中的 Windows PowerShell 别名。
该命令使用 Get-Alias cmdlet 获取别名。 它使用管道运算符 (|) 将别名发送到 ConvertTo-Html cmdlet,该 cmdlet 创建 HTML 页面。 该命令还使用 Out-File cmdlet 将 HTML 代码发送到 aliases.htm 文件。
示例 3:创建用于显示 PowerShell 事件的网页
PS C:\> Get-EventLog -LogName "Windows PowerShell" | ConvertTo-Html | Out-File pslog.htm
此命令将创建一个名为 pslog.htm 的 HTML 页,用于在本地计算机上的 Windows PowerShell 事件日志中显示事件。
它使用 Get-EventLog cmdlet 获取 Windows PowerShell 日志中的事件,然后使用管道运算符 (|) 将事件发送到 ConvertTo-Html cmdlet。
该命令还使用 Out-File cmdlet 将 HTML 代码发送到 pslog.htm 文件。
示例 4:创建用于显示进程的网页
PS C:\> Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "Process Information" | Out-File proc.htm; ii proc.htm
这些命令创建并打开一个 HTML 页面,其中列出了本地计算机上的进程的名称、路径和公司。
第一个命令使用 Get-Process cmdlet 获取表示计算机上运行的进程的对象。 该命令使用管道运算符 (|) 将进程对象发送到 ConvertTo-Html cmdlet。
该命令使用 Property 参数选择要包含在表中的进程对象的三个属性。 该命令使用 Title 参数为 HTML 页面指定标题。 该命令还使用 Out-File cmdlet 将生成的 HTML 发送到名为 Proc.htm的文件。
第二个命令使用 Invoke-Item cmdlet (alias = ii) 在默认浏览器中打开 Proc.htm。 这两个命令用分号(;))分隔。
示例 5:创建用于显示服务对象的网页
PS> get-service | convertto-html -CssUri "test.css"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>HTML TABLE</title>
<link rel="stylesheet" type="text/css" href="test.css" />
...
此命令创建 Get-Service cmdlet 返回的服务对象的 HTML 页。 该命令使用 CssUri 参数为 HTML 页面指定级联样式表。
CssUri 参数向生成的 HTML 添加附加 <链接 rel=“stylesheet” type=“text/css”/ href=“test.css”> 标记。 标记中的 HREF 属性包含样式表的名称。
示例 6:创建用于显示服务对象的网页
PS C:\> Get-Service | ConvertTo-Html -As LIST | Out-File services.htm
此命令创建 Get-Service cmdlet 返回的服务对象的 HTML 页。 该命令使用 As 参数来指定列表格式。 cmdlet Out-File 将生成的 HTML 发送到 Services.htm 文件。
示例 7:为当前日期创建 Web 表
PS C:\> Get-Date | cth -Fragment
<table>
<colgroup>...</colgroup>
<tr><th>DisplayHint</th><th>DateTime</th><th>Date</th><th>Day</th><th>DayOfWeek</th><th>DayOfYear</th><th>Hour</th>
<th>Kind</th><th>Millisecond</th><th>Minute</th><th>Month</th><th>Second</th><th>Ticks</th><th>TimeOfDay</th><th>Year</th></tr>
<tr><td>DateTime</td><td>Monday, May 05, 2008 10:40:04 AM</td><td>5/5/2008 12:00:00 AM</td><td>5</td><td>Monday</td>
<td>126</td><td>10</td><td>Local</td><td>123</td><td>40</td><td>5</td><td>4</td><td>633455808041237213</td><td>10:40:04.12
37213</td><td>2008</td></tr>
</table>
此命令使用 ConvertTo-Html 生成当前日期的 HTML 表。 该命令使用 Get-Date cmdlet 获取当前日期。 它使用管道运算符 (|) 将结果发送到 ConvertTo-Html cmdlet(别名为 cth)。
ConvertTo-Html 命令包括将输出限制为 HTML 表的 Fragment 参数。 因此,省略 HTML 页面的其他元素,例如 <HEAD> 和 <BODY> 标记。
示例 8:创建网页以显示 PowerShell 事件
PS C:\> Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task
此命令使用 Get-EventLog cmdlet 从 Windows PowerShell 事件日志中获取事件。
它使用管道运算符 (|) 将事件发送到 ConvertTo-Html cmdlet,该 cmdlet 将事件转换为 HTML 格式。
ConvertTo-Html 命令使用 属性 参数仅选择事件的 ID、级别和任务属性。
示例 9:创建用于显示指定服务的网页
PS C:\> Get-Service A* | ConvertTo-Html -Title "Windows Services: Server01" -Body (get-date) -Pre
"<P>Generated by Corporate IT</P>" -Post "For details, contact Corporate IT." | Out-File services.htm; ii services.htm
此命令创建并打开一个网页,该网页显示以 A 开头的计算机上的服务。它使用 Title、正文、PreContent,以及 ConvertTo-HtmlPostContent 参数来自定义输出。
该命令的第一部分使用 Get-Service cmdlet 获取以 A 开头的计算机上的服务。该命令使用管道运算符 (|) 将结果发送到 ConvertTo-Html cmdlet。 该命令还使用 Out-File cmdlet 将输出发送到 Services.htm 文件。
分号(;)结束第一个命令并启动第二个命令,该命令使用 Invoke-Item cmdlet(alias = “ii”)在默认浏览器中打开 Services.htm 文件。
参数
-As
指定对象是格式化为表还是列表。 此参数的可接受值为:表和列表。 默认值为 Table。
表值生成类似于 Windows PowerShell 表格式的 HTML 表。 标题行显示属性名称。 每个表行表示一个对象,并显示每个属性的对象的值。
List 值为每个类似于 Windows PowerShell 列表格式的对象生成一个双列 HTML 表。 第一列显示属性名称;第二列显示属性值。
参数属性
| 类型: | String |
| 默认值: | None |
| 接受的值: | Table, List |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Body
指定要在开始 <BODY> 标记之后添加的文本(作为数组)。 默认情况下,该位置没有文本。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
Page
| Position: | 3 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-CssUri
指定应用于 HTML 文件的级联样式表(CSS)的统一资源标识符(URI)。 URI 包含在输出的样式表链接中。
参数属性
| 类型: | Uri |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 铜, uri |
参数集
Page
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Fragment
指示此 cmdlet 仅生成 HTML 表。 省略 HTML、HEAD、TITLE 和 BODY 标记。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
Fragment
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Head
将 <HEAD> 标记的内容指定为数组。 默认值为 <标题>HTML TABLE</title>。 如果使用 Head 参数,则忽略 Title 参数。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
Page
| Position: | 1 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-InputObject
指定要在 HTML 中表示的对象。 输入一个包含对象的变量,或键入一个获取对象的命令或表达式。
如果使用此参数提交多个对象(例如计算机上的所有服务),ConvertTo-Html 将创建一个表,该表显示集合或对象数组的属性(System.Object[])。 若要创建单个对象的表,请使用管道运算符通过管道将对象传递给 ConvertTo-Html。
参数属性
| 类型: | PSObject |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-PostContent
指定要在结束 </TABLE> 标记后添加的文本。 默认情况下,该位置没有文本。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-PreContent
指定要在开始 <TABLE> 标记之前添加的文本数组。 默认情况下,该位置没有文本。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Property
指定 HTML 中对象的属性。 属性的 参数值可以是一个新计算得出的属性。 若要创建计算属性,请使用哈希表。 有效密钥包括:
- 标签 <字符串>(与 Select-Object 或 Format-Table 不同,不支持名称键)
- 表达式 <字符串> 或 <脚本块>
参数属性
| 类型: | Object[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | 0 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Title
指定 HTML 文件的标题,即 <TITLE> 标记之间显示的文本。
参数属性
| 类型: | String |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
Page
| Position: | 2 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
PSObject
可以通过管道将任何 .NET 对象传递给 ConvertTo-Html。
输出
System.String or System.Xml.XmlDocument
此 cmdlet 返回一系列构成有效 HTML 的字符串。
备注
若要使用此 cmdlet,请通过管道将一个或多个对象传递给该 cmdlet,或使用 InputObject 参数指定对象。 当输入包含多个对象时,这两种方法的输出大相径庭。
将多个对象通过管道传递给 cmdlet 时,Windows PowerShell 一次将对象发送到该 cmdlet。 因此,ConvertTo-Html 创建一个显示各个对象的表。 例如,如果通过管道将计算机上的进程传递给 ConvertTo-Html,则生成的表将显示所有进程。
使用 InputObject 参数提交多个对象时,ConvertTo-Html 接收这些对象作为集合或数组。 因此,它会创建一个表来显示数组及其属性,而不是数组中的项。 例如,如果使用 InputObject 将计算机上的进程提交到 ConvertTo-Html,则生成的表将显示对象数组(System.Object[])及其属性。
为了符合 XHTML Strict DTD,请相应地修改 DOCTYPE 标记:
(<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">)