Get-FormatData
取得目前工作階段中的格式化資料。
Syntax
Get-FormatData
[[-TypeName] <String[]>]
[-PowerShellVersion <Version>]
[<CommonParameters>]
Description
Cmdlet Get-FormatData
會取得目前會話中的格式化數據。
會話中的格式化數據包括格式化 Format.ps1xml
檔案中的數據,例如 $PSHOME
目錄中的格式化數據、格式化您匯入會話的模組數據,以及使用 Import-PSSession
Cmdlet 匯入會話的命令格式化數據。
您可以使用這個 Cmdlet 來檢查格式化資料。 然後,您可以使用 Export-FormatData
Cmdlet 來串行化物件、將它們轉換成 XML,並將其儲存在檔案中 Format.ps1xml
。
如需在PowerShell中格式化檔案的詳細資訊,請參閱 about_Format.ps1xml。
範例
範例 1:取得所有格式化數據
此範例會取得會話中的所有格式化數據。
Get-FormatData -PowerShellVersion 5.1
重要
若要確保傳回完整的型別格式資訊,在使用 的本機調用Get-FormatData
時,您應該一律將PowerShellVersion 參數與值5.1
一起包含。 如果省略 參數和值,您可能不會取得所有正確的類型資訊。
範例 2:依類型名稱取得格式化數據
此範例會取得名稱開頭為 System.Management.Automation.Cmd
的數據項格式設定。
Get-FormatData -TypeName 'System.Management.Automation.Cmd*' -PowerShellVersion 5.1
範例 3:檢查格式化數據物件
這個範例示範如何取得格式化資料物件,並檢查其屬性。
$F = Get-FormatData -TypeName 'System.Management.Automation.Cmd*' -PowerShellVersion 5.1
$F
TypeName FormatViewDefinition
-------- --------------------
HelpInfoShort {help , TableControl}
$F.FormatViewDefinition[0].control
Headers : {System.Management.Automation.TableControlColumnHeader,
System.Management.Automation.TableControlColumnHeader,
System.Management.Automation.TableControlColumnHeader,
System.Management.Automation.TableControlColumnHeader}
Rows : {System.Management.Automation.TableControlRow}
AutoSize : False
HideTableHeaders : False
GroupBy :
OutOfBand : False
$F.FormatViewDefinition[0].control.Headers
Label Alignment Width
----- --------- -----
CommandType Undefined 15
Name Undefined 50
Version Undefined 10
Source Undefined 0
範例 4:取得格式化數據並將其匯出
此範例示範如何使用 Get-FormatData
和 Export-FormatData
匯出模組所新增的格式數據。
$A = Get-FormatData -PowerShellVersion 5.1
Import-Module bitstransfer
$B = Get-FormatData -PowerShellVersion 5.1
Compare-Object $A $B
InputObject SideIndicator
----------- -------------
Microsoft.BackgroundIntelligentTransfer.Management.BitsJob =>
Get-FormatData *bits* | Export-FormatData -FilePath c:\test\bits.format.ps1xml
Get-Content c:\test\bits.format.ps1xml
<?xml version="1.0" encoding="utf-8"?><Configuration><ViewDefinitions>
<View><Name>Microsoft.BackgroundIntelligentTransfer.Management.BitsJob</Name>
...
前四個命令會使用 Get-FormatData
、 Import-Module
和 Compare-Object
Cmdlet 來識別 BitsTransfer 模組新增至會話的格式類型。
第五個命令會 Get-FormatData
使用 Cmdlet 來取得 BitsTransfer 模組新增的格式類型。 它會使用管線運算符 (|
) 將格式類型物件 Export-FormatData
傳送至 Cmdlet,以將它轉換回 XML,並將它儲存在指定的 format.ps1xml
檔案中。
最後一個命令會顯示檔案內容的摘錄 format.ps1xml
。
範例 5:根據指定的 PowerShell 版本取得格式化數據
此範例示範如何使用 Get-FormatData
來取得指定 TypeName 和 PowerShell 版本的格式數據。
Get-FormatData -TypeName 'Microsoft.PowerShell.Utility.FileHash' -PowerShellVersion $PSVersionTable.PSVersion
TypeNames FormatViewDefinition
--------- --------------------
{Microsoft.PowerShell.Utility.FileHash} {Microsoft.PowerShell.Utility.FileHash}
參數
-PowerShellVersion
指定此 Cmdlet 針對格式化數據取得的 PowerShell 版本。 輸入以句號分隔的兩位數。
此參數已新增至 PowerShell 5.1 中,以改善遠端執行舊版 PowerShell 的電腦時的相容性。
Type: | Version |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeName
指定這個 Cmdlet 針對格式化數據取得的類型名稱。 輸入類型名稱。 允許使用萬用字元。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
輸入
None
您無法使用管線傳送輸入至此 Cmdlet。