ConvertTo-Html
將Microsoft .NET Framework 物件轉換成可在網頁瀏覽器中顯示的 HTML。
語法
ConvertTo-Html
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[[-Body] <String[]>]
[[-Head] <String[]>]
[[-Title] <String>]
[-As <String>]
[-CssUri <Uri>]
[-PostContent <String[]>]
[-PreContent <String[]>]
[<CommonParameters>]
ConvertTo-Html
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[-As <String>]
[-Fragment]
[-PostContent <String[]>]
[-PreContent <String[]>]
[<CommonParameters>]
Description
ConvertTo-Html Cmdlet 會將 .NET Framework 物件轉換成可在網頁瀏覽器中顯示的 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 來取得別名。 它會使用管線運算符 (|) 將別名傳送至建立 HTML 頁面的 ConvertTo-Html Cmdlet。 此命令也會使用 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 參數會將額外的 <連結 rel=“stylesheet” type=“text/css”/ href=“test.css”> 標記新增至產生的 HTML。 標籤中的 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 命令包含 Fragment 參數,其會將輸出限制為 HTML 數據表。 因此,會省略 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
ConvertTo-Html 命令會使用 Property 參數,只選取事件的標識碼、層級和 Task 屬性。
範例 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 開頭之電腦上的服務。它會使用
命令的第一個部分會使用 Get-Service Cmdlet 來取得以 A 開頭之電腦上的服務。命令會使用管線運算符 (|) 將結果傳送至 convertTo-Html Cmdlet
分號 (;)結束第一個命令,並啟動第二個命令,它會使用 Invoke-Item Cmdlet (alias = “ii”) 在預設瀏覽器中開啟 Services.htm 檔案。
參數
-As
指定物件的格式為資料表或清單。 此參數可接受的值為:數據表和清單。 預設值為 Table。
Table 值會產生類似 Windows PowerShell 數據表格式的 HTML 數據表。 標頭數據列會顯示屬性名稱。 每個數據表數據列都代表物件,並顯示每個屬性的物件值。
List 值會為每個類似 Windows PowerShell 清單格式的物件產生兩欄 HTML 資料表。 第一個數據行會顯示屬性名稱;第二個數據行會顯示 屬性值。
類型: | String |
接受的值: | Table, List |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Body
將文字指定為陣列,以在開頭 <BODY> 標記之後新增。 根據預設,該位置沒有文字。
類型: | String[] |
Position: | 3 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-CssUri
指定套用至 HTML 檔案之級聯樣式表單 (CSS) 的統一資源識別碼 (URI)。 URI 包含在輸出的樣式表單連結中。
類型: | Uri |
別名: | cu, uri |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Fragment
表示此 Cmdlet 只會產生 HTML 數據表。 會省略 HTML、HEAD、TITLE 和 BODY 標記。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Head
指定 <HEAD> 標記的內容做為數位。 預設為 <標題>HTML TABLE</title>。 如果您使用 Head 參數,則會忽略 Title 參數。
類型: | String[] |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
指定要以 HTML 表示的物件。 輸入包含 物件的變數,或輸入取得物件的命令或表達式。
如果您使用此參數來提交多個物件,例如計算機上的所有服務,ConvertTo-Html 會建立一個數據表,以顯示集合的屬性或對象的陣列(System.Object[])。 若要建立個別物件的數據表,請使用管線運算子將物件傳送至 convertTo-Html 。
類型: | PSObject |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-PostContent
指定要在結尾 </TABLE> 標記之後新增的文字。 根據預設,該位置沒有文字。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-PreContent
指定要在開頭 <TABLE> 標記之前加入的文字陣列。 根據預設,該位置沒有文字。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Property
指定 HTML 中物件的屬性。 Property 參數的值可以是新的導出屬性。 若要建立導出屬性,請使用哈希表。 有效的金鑰如下:
- 標籤 <字串>(與 Select-Object 或 Format-Table 不同,不支援名稱索引鍵)
- 表達式 <字串> 或 <腳本區塊>
類型: | Object[] |
Position: | 0 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Title
指定 HTML 檔案的標題,也就是出現在 <TITLE> 標籤之間的文字。
類型: | String |
Position: | 2 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將任何 .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">)