ConvertTo-Html
將 .NET 物件轉換成可在網頁瀏覽器中顯示的 HTML。
Syntax
ConvertTo-Html
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[[-Body] <String[]>]
[[-Head] <String[]>]
[[-Title] <String>]
[-As <String>]
[-CssUri <Uri>]
[-PostContent <String[]>]
[-PreContent <String[]>]
[-Meta <Hashtable>]
[-Charset <String>]
[-Transitional]
[<CommonParameters>]
ConvertTo-Html
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[-As <String>]
[-Fragment]
[-PostContent <String[]>]
[-PreContent <String[]>]
[<CommonParameters>]
Description
Cmdlet 會將 ConvertTo-Html
.NET 物件轉換成可顯示在網頁瀏覽器中的 HTML。 您可以使用這個 Cmdlet 在網頁中顯示命令的輸出。
您可以使用 的參數 ConvertTo-Html
來選取物件屬性、指定數據表或清單格式、指定 HTML 頁面標題、在 物件前後新增文字,以及只傳回數據表或清單片段,而不是嚴格的 DTD 頁面。
當您將多個物件提交至 ConvertTo-Html
時,PowerShell 會根據您提交之第一個對象的屬性,建立數據表 (或清單) 。 如果剩餘的物件不具有其中一個指定的屬性,該物件的屬性值將會是空的儲存格。 如果其餘的物件有其他屬性,那些屬性值將不會包含在檔案中。
範例
範例 1:Create 顯示日期的網頁
ConvertTo-Html -InputObject (Get-Date)
此命令建立一個顯示目前日期之屬性的 HTML 網頁。 它會使用 InputObject 參數,將命令的結果 Get-Date
提交至 ConvertTo-Html
Cmdlet。
範例 2:Create 顯示 PowerShell 別名的網頁
Get-Alias | ConvertTo-Html | Out-File aliases.htm
Invoke-Item aliases.htm
此命令會建立 HTML 頁面,其中列出目前控制台中的 PowerShell 別名。
命令會 Get-Alias
使用 Cmdlet 來取得別名。 它會使用管線運算符 (|
) 將別名傳送至 ConvertTo-Html
Cmdlet,以建立 HTML 頁面。 此命令也會使用 Out-File
Cmdlet 將 HTML 程式代碼傳送至 aliases.htm
檔案。
範例 3:Create 顯示 PowerShell 事件的網頁
`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
檔案。
此命令也會使用 Out-File
Cmdlet 將 HTML 程式代碼傳送至 pslog.htm
檔案。
範例 4:Create 顯示行程的網頁
Get-Process |
ConvertTo-Html -Property Name, Path, Company -Title "Process Information" |
Out-File proc.htm
Invoke-Item proc.htm
這些命令建立並開啟一個 HTML 網頁,當中列出本機電腦上處理程序的名稱、路徑及公司。
第一個命令會 Get-Process
使用 Cmdlet 來取得對象,這些物件代表在計算機上執行的進程。 命令會使用管線運算符 (|
) ,將進程對象傳送至 ConvertTo-Html
Cmdlet。
此命令會使用 Property 參數來選取要包含在數據表中的進程物件的三個屬性。 此命令會使用 Title 參數來指定 HTML 頁面的標題。 此命令也會使用 Out-File
Cmdlet 將產生的 HTML 傳送至名為 Proc.htm 的檔案。
第二個命令會 Invoke-Item
使用 Cmdlet 在預設瀏覽器開啟 Proc.htm
。
範例 5:Create 顯示服務物件的網頁
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" />
...
此命令會建立 Cmdlet 傳回之服務物件的 Get-Service
HTML 頁面。 此命令會使用 CssUri 參數來指定 HTML 頁面的級聯樣式表單。
CssUri 參數會將額外的<link rel="stylesheet" type="text/css" href="test.css">
標記新增至產生的 HTML。 標記中的 HREF 屬性包含樣式表的名稱。
範例 6:Create 網頁來顯示服務物件
Get-Service | ConvertTo-Html -As LIST | Out-File services.htm
此命令會建立 Cmdlet 傳回之服務物件的 Get-Service
HTML 頁面。 此命令會使用 As 參數來指定清單格式。 Cmdlet Out-File
會將產生的 HTML 傳送至 Services.htm
檔案。
範例 7:Create 目前日期的 Web 數據表
Get-Date | ConvertTo-Html -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。
此命令 ConvertTo-Html
包含 Fragment 參數,其會將輸出限製為 HTML 資料表。 因此,會省略 HTML 網頁的其他元素,例如 <HEAD>
和 <BODY>
標記。
範例 8:Create 網頁以顯示 PowerShell 事件
Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task
此命令會Get-EventLog
使用 Cmdlet 從 Windows PowerShell 事件記錄檔取得事件。
它會使用管線運算符 (|
) 將事件傳送至 ConvertTo-Html
Cmdlet,以將事件轉換成 HTML 格式。
ConvertTo-Html
此命令會使用 Property 參數,只選取事件的標識碼、層級和 Task 屬性。
範例 9:Create 顯示指定服務的網頁
$htmlParams = @{
Title = "Windows Services: Server01"
Body = Get-Date
PreContent = "<P>Generated by Corporate IT</P>"
PostContent = "For details, contact Corporate IT."
}
Get-Service A* |
ConvertTo-Html @htmlParams |
Out-File Services.htm
Invoke-Item Services.htm
此命令會建立並開啟網頁,顯示以 A 開頭之電腦上的服務。它會使用的 ConvertTo-Html
Title、Body、PreContent 和 PostContent 參數來自定義輸出。
命令的第一個部分會 Get-Service
使用 Cmdlet 來取得以 A 開頭之電腦上的服務。命令會使用管線運算符 (|
) 將結果傳送至 ConvertTo-Html
Cmdlet。 此命令也會使用 Out-File
Cmdlet 將輸出傳送至 Services.htm 檔案。
分號 (;
) 結束第一個命令,並啟動第二個命令,它會使用 Invoke-Item
Cmdlet 在預設瀏覽器中開啟 Services.htm
檔案。
範例 10:設定 HTML 的 Meta 屬性和 Charset
Get-Service | ConvertTo-HTML -Meta @{
refresh=10
author="Author's Name"
keywords="PowerShell, HTML, ConvertTo-HTML"
} -Charset "UTF-8"
此命令會建立網頁的 HTML,其中包含重新整理、撰寫和關鍵詞的中繼標籤。 頁面的 charset 設定為 UTF-8
範例 11:將 HTML 設定為 XHTML 轉換 DTD
Get-Service | ConvertTo-HTML -Transitional
此命令會將傳回之 HTML 的 DOCTYPE 設定為 XHTML 轉換 DTD
參數
-As
決定要將物件的格式設定為表格或清單。 有效值為 Table 和 List。 預設值為 Table。
Table 值會產生類似 PowerShell 資料表格式的 HTML 資料表。 標題列會顯示屬性名稱。 每個表格列皆代表一個物件,並會顯示該物件每個屬性的值。
List 值會為每個類似 PowerShell 清單格式的物件產生兩欄 HTML 資料表。 第一個數據行會顯示屬性名稱。 第二個數據行會顯示 屬性值。
Type: | String |
Accepted values: | Table, List |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Body
指定要在開頭 <BODY>
標記之後新增的文字。 該位置預設不會有任何文字。
Type: | String[] |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Charset
指定要加入至開頭 <charset>
標記的文字。 該位置預設不會有任何文字。
此參數是在 PowerShell 6.0 中引進。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CssUri
指定套用到 HTML 檔案之階層式樣式表 (CSS) 的統一資源識別項 (URI)。 URI 包含在輸出中的樣式表連結內。
Type: | Uri |
Aliases: | cu, uri |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Fragment
只產生 HTML 表格。 將會省略 HTML、HEAD、TITLE 及 BODY 標記。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Head
指定 <HEAD>
標記的內容。 預設值為 <title\>HTML TABLE</title>
。 如果您使用 Head 參數, 則會忽略 Title 參數。
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
指定要以 HTML 呈現的物件。 輸入包含物件的變數,或輸入可取得物件的命令或運算式。
如果您使用此參數來提交多個物件,例如計算機上的所有服務, ConvertTo-Html
請建立一個數據表,以顯示集合的屬性或對象的陣列。 若要建立個別物件的數據表,請使用管線運算子將物件管線傳送至 ConvertTo-Html
。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Meta
指定要新增至開頭 <meta>
標記的文字。 該位置預設不會有任何文字。
此參數是在 PowerShell 6.0 中引進。
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PostContent
指定要在結尾 </TABLE>
標記之後新增的文字。 該位置預設不會有任何文字。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PreContent
指定要在開頭 <TABLE>
標記之前新增的文字。 該位置預設不會有任何文字。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
將物件的指定屬性包含在 HTML 中。 Property 參數的值可以是新的導出屬性。 匯出屬性可以是腳本區塊或哈希表。 有效的機碼/值組為:
- 名稱 (或標籤) -
<string>
在 PowerShell 6.x) 中新增 ( - 表達式 -
<string>
或<script block>
- FormatString -
<string>
- 寬度 -
<int32>
必須大於0
- 對齊 - 值可以是
Left
、Center
或Right
如需詳細資訊,請參閱 about_Calculated_Properties。
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Title
指定 HTML 檔案的標題,也就是出現在 <TITLE>
標記之間的文字。
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Transitional
將 DOCTYPE 變更為 XHTML 過渡 DTD,預設 DOCTYPE 為 XHTML Strict DTD。
此參數是在 PowerShell 6.0 中引進。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
您可以使用管線將任何 .NET 物件傳送至 ConvertTo-Html
。
輸出
System.String or System.Xml.XmlDocument
ConvertTo-Html
會傳回組成有效 HTML 的字串系列。
備註
若要使用此 Cmdlet,請使用管線將一或多個對象傳送至 Cmdlet,或使用 InputObject 參數來指定物件。 當輸入是由多個物件組成時,這兩個方法的輸出會非常不一樣。
當您使用管線將多個對象傳送至 Cmdlet 時,PowerShell 會一次將對象傳送至 Cmdlet。 因此,
ConvertTo-Html
會建立顯示個別對象的數據表。 例如,如果您以管線將計算機上的進程傳送至ConvertTo-Html
,則產生的數據表會顯示所有進程。當您使用 InputObject 參數提交多個物件時,
ConvertTo-Html
會接收這些物件做為集合或陣列。 因此,它會建立顯示陣列及其屬性 (而非顯示陣列中的項目) 的表格。 例如,如果您使用 InputObject 將電腦上的進程提交至ConvertTo-Html
,則產生的數據表會顯示物件陣列及其屬性。為了符合 XHTML Strict DTD,DOCTYPE 標記會據以修改:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"\>