ConvertTo-Html
將 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 |
預設值 |
表格 |
接受管線輸入? |
false |
接受萬用字元? |
false |
-Body <string[]>
指定要在開頭 <BODY> 標記後加上的文字。根據預設,該位置沒有任何文字。
必要? |
false |
位置? |
4 |
預設值 |
沒有文字。 |
接受管線輸入? |
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 |
預設值 |
沒有文字 |
接受管線輸入? |
false |
接受萬用字元? |
false |
-PreContent <string[]>
指定要在開頭 <TABLE> 標記前加上的文字。根據預設,該位置沒有任何文字。
必要? |
false |
位置? |
named |
預設值 |
沒有文字 |
接受管線輸入? |
false |
接受萬用字元? |
false |
-Property <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 檔案。