將 Microsoft .NET Framework 物件轉換成可在網頁瀏覽器中顯示的 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 物件轉換成可在網頁瀏覽器中顯示的 HTML。此 Cmdlet 可以用來在網頁中顯示命令的輸出。

您可以使用 ConvertTo-Html 的參數,選取物件屬性、指定表格或清單格式、指定 HTML 網頁標題、在物件前後加上文字,以及只傳回表格或清單片段而非 Strict DTD 頁面。

當您送出多個物件給 ConvertTo-Html 時,Windows PowerShell 會依照所送出之第一個物件的屬性來建立表格 (或清單)。如果其他物件沒有其中一個指定的屬性,該物件的屬性值則為空資料格。如果其他物件有額外的屬性,則不會在檔案中包含額外的屬性值。

參數

-As <string>

決定是否將物件格式化為表格或清單。有效的值為 TABLE 和 LIST。預設值為 TABLE。

TABLE 值會產生 HTML 表格,類似於 Windows PowerShell 表格格式。標頭列會顯示屬性名稱。每個表格列都代表一個物件,而且會為每個屬性顯示物件的值。

LIST 值會為每個物件產生兩欄 HTML 表格,類似於 Windows PowerShell 清單格式。第一欄顯示屬性名稱,而第二欄顯示屬性值。

必要?

false

位置?

named

預設值

Table

接受管線輸入?

false

接受萬用字元?

false

-Body <string[]>

指定要在開頭 <BODY> 標記後加上的文字。根據預設,該位置沒有任何文字。

必要?

false

位置?

4

預設值

No text.

接受管線輸入?

false

接受萬用字元?

false

-CssUri <Uri>

指定套用到 HTML 檔案之階層式樣式表 (CSS) 的統一資源識別項 (URI)。輸出的樣式表連結含有此 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

預設值

No text

接受管線輸入?

false

接受萬用字元?

false

-PreContent <string[]>

指定要在開頭 <TABLE> 標記前加上的文字。根據預設,該位置沒有任何文字。

必要?

false

位置?

named

預設值

No text

接受管線輸入?

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

描述
-----------
這個命令會建立一個列出目前主控台中 Windows PowerShell 別名的 HTML 網頁。

它會使用 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 參數會將額外的 "<link rel="stylesheet" type="text/css" 標記加入至產生的 HTML。這個標記中的 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 檔案。






請參閱




目錄