ConvertTo-Html
将 Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。
语法
ConvertTo-Html [[-Head] <string[]>] [[-Title] <string>] [[-Body] <string[]>] [-CssUri <Uri>] [[-Property] <Object[]>] [-As <string>] [-InputObject <psobject>] [-PostContent <string[]>] [-PreContent <string[]>] [<CommonParameters>]
ConvertTo-Html [-Fragment] [[-Property] <Object[]>] [-As <string>] [-InputObject <psobject>] [-PostContent <string[]>] [-PreContent <string[]>] [<CommonParameters>]
说明
ConvertTo-Html cmdlet 将 .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。可使用此 cmdlet 在网页上显示命令的输出内容。
可使用 ConvertTo-Html 的参数来选择对象属性、指定表格或列表格式、指定 HTML 页面标题,在对象前后添加文本,以及仅返回表格或列表片段,而不是完整的 DTD 页面。
当向 ConvertTo-Html 提交多个对象时,Windows PowerShell 基于所提交的第一个对象的属性来创建表格(或列表)。如果其余对象不具有所指定的属性之一,则该对象的属性值为空单元。如果其余对象具有附加属性,则在文件中不会包括这些属性。
参数
-As <string>
确定将对象设置为表格格式还是列表格式。有效值为 TABLE 和 LIST。默认值为 TABLE。
TABLE 值生成类似 Windows PowerShell 表格格式的 HTML 表。标题行显示属性名称。表格的每一行表示一个对象,并显示该对象的每个属性值。
LIST 值为每个对象生成一个包含两列的 HTML 表,该表类似于 Windows PowerShell 列表格式。第一列显示属性名称,第二列显示属性值。
是否为必需? |
false |
位置? |
named |
默认值 |
表格 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Body <string[]>
指定要在左 <BODY> 标记之后添加的文本。默认情况下,该位置没有文本。
是否为必需? |
false |
位置? |
4 |
默认值 |
无文本。 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-CssUri <Uri>
指定层叠样式表 (CSS) 的统一资源标识符 (URI),该 URI 将应用在 HTML 文件中。输出中的样式表链接中将包括该 URI。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Fragment
仅生成一个 HTML 表。省略了 HTML、HEAD、TITLE 和 BODY 标记。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Head <string[]>
指定 <HEAD> 标记的内容。默认值为“<title>HTML TABLE</title>”。如果使用 Head 参数,则忽略 Title 参数。
是否为必需? |
false |
位置? |
2 |
默认值 |
<title>HTML TABLE</title> |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-InputObject <psobject>
指定要用 HTML 表示的对象。请输入包含对象的变量,或者键入可获取对象的命令或表达式。
如果使用此参数来提交多个对象(如计算机中的所有服务),则 ConvertTo-Html 会创建一个表格,该表格显示集合的属性或对象数组 (System.Object[]) 的属性。要创建由单个对象组成的表格,请使用管道运算符通过管道将对象传递至 ConvertTo-Html。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
true (ByValue) |
是否接受通配符? |
false |
-PostContent <string[]>
指定要在右 </TABLE> 标记之后添加的文本。默认情况下,该位置没有文本。
是否为必需? |
false |
位置? |
named |
默认值 |
无文本 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-PreContent <string[]>
指定要在左 <TABLE> 标记之前添加的文本。默认情况下,该位置没有文本。
是否为必需? |
false |
位置? |
named |
默认值 |
无文本 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-属性 <Object[]>
在 HTML 中包括所指定的对象属性。
是否为必需? |
false |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Title <string>
指定 HTML 文件的标题,即在 <TITLE> 标记之间显示的文本。
是否为必需? |
false |
位置? |
3 |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
System.Management.Automation.PSObject 可通过管道将任何 .NET 对象传递至 ConvertTo-Html。 |
输出 |
System.String ConvertTo-Html 返回一系列包含有效 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" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">)
示例 1
C:\PS>convertto-html -inputobject (get-date)
说明
-----------
此命令创建用来显示当前日期的属性的 HTML 页。它使用 InputObject 参数将 Get-Date 命令的结果提交到 ConvertTo-Html cmdlet。
示例 2
C:\PS>get-alias | convertto-html > aliases.htm
C:\PS> invoke-item aliases.htm
说明
-----------
此命令创建 HTML 页,该页列出当前控制台中的 Windows PowerShell 别名。
该命令使用 Get-Alias cmdlet 来获取这些别名。它使用管道运算符 (|) 将别名发送至 ConvertTo-Html cmdlet,该 cmdlet 将创建 HTML 页。
示例 3
C:\PS>get-eventlog -logname "Windows PowerShell | convertto-html > pslog.htm
说明
-----------
此命令创建一个名为 pslog.htm 的 HTML 页,该页显示本地计算机上 Windows PowerShell 事件日志中的事件。
它使用 Get-EventLog cmdlet 获取 Windows PowerShell 日志中的事件,然后使用管道运算符 (|) 将事件发送至 ConvertTo-Html cmdlet。
该命令还使用重定向运算符 (>) 将 HTML 代码发送至 pslog.htm 文件。
示例 4
C:\PS>get-process | convertto-html -property Name, Path, Company -title "Process Information" > proc.htm; ii proc.htm
说明
-----------
这些命令创建并打开的 HTML 页列出本地计算机上进程的名称、路径和所属公司。
第一条命令使用 Get-Process cmdlet 获取用来表示计算机中运行的进程的对象。该命令使用管道运算符 (|) 将进程对象发送至 ConvertTo-Html cmdlet。
该命令使用 Property 参数来选择表中要包括的进程对象的三个属性。该命令使用 Title 参数来指定 HTML 页的标题。它还使用重定向运算符 (>) 将所得到的 HTML 发送至名为 Proc.htm 的文件。
第二条命令使用 Invoke-Item cmdlet (别名为 ii)在默认浏览器中打开 Proc.htm。这两个命令以分号 (;) 来分隔。
示例 5
C:\PS>get-service | convertto-html -CssUri "test.css"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://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 添加附加的“<link rel="stylesheet" type="text/css”标记。标记中的 HREF 属性包含样式表的名称。
示例 6
C:\PS>get-service | convertto-html -as LIST > services.htm
说明
-----------
该命令创建 Get-Service cmdlet 返回的服务对象的 HTML 页。该命令使用 As 参数来指定列表格式。重定向运算符 (>) 将得到的 HTML 发送至 Services.htm 文件。
示例 7
C:\PS>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 命令包括 Fragment 参数,该参数限制向 HTML 表进行的输出。因此,将忽略 HTML 页的其他元素,如 <HEAD> 和 <BODY> 标记。
示例 8
C:\PS>get-eventlog -log "Windows PowerShell" | convertto-html -property id, level, task
说明
-----------
该命令使用 Get-EventLog cmdlet 从“Windows PowerShell”事件日志中获取事件。
它使用管道运算符 (|) 将事件发送至 ConvertTo-Html cmdlet,该 cmdlet 将事件转换为 HTML 格式。
ConvertTo-Html 命令使用 Property 参数来仅选择事件的 ID、Level 和 Task 属性。
示例 9
C:\PS>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." > services.htm; ii services.htm
说明
-----------
该命令创建并打开网页,该页显示计算机中以“A”开头的服务。它使用 ConvertTo-Html 的 Title、Body、PreContent 和 PostContent 参数来自定义输出。
该命令的第一部分使用 Get-Service cmdlet 来获取计算机中以“A”开头的服务。命令使用管道运算符 (|) 将结果发送至 ConvertTo-Html cmdlet。命令还使用重定向运算符 (>) 将输出发送至 Services.htm 文件。
分号 (;) 结束第一个命令并启动第二个命令,第二个命令使用 Invoke-Item cmdlet(别名为“ii”)在默认浏览器中打开 Services.htm 文件。