Format-Table
Formátuje výstup jako tabulku.
Syntaxe
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>]
[-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>]
[<CommonParameters>]
Description
Rutina Format-Table
formátuje výstup příkazu jako tabulku s vybranými vlastnostmi objektu v každém sloupci. Typ objektu určuje výchozí rozložení a vlastnosti, které jsou zobrazeny v každém sloupci. Pomocí parametru Property můžete vybrat vlastnosti, které chcete zobrazit.
PowerShell používá výchozí formátovací moduly k definování způsobu zobrazení typů objektů. Soubory můžete použít .ps1xml
k vytvoření vlastních zobrazení, která zobrazují výstupní tabulku se zadanými vlastnostmi. Po vytvoření vlastního zobrazení pomocí parametru View zobrazte tabulku s vlastním zobrazením. Další informace o zobrazeních najdete v tématu about_Format.ps1xml.
Před zobrazením objektu můžete pomocí hashovací tabulky přidat počítané vlastnosti a určit záhlaví sloupců v tabulce. Pokud chcete přidat počítanou vlastnost, použijte parametr Property nebo GroupBy . Další informace o tabulkách hash najdete v tématu about_Hash_Tables.
Příklady
Příklad 1: Formátování hostitele PowerShellu
Tento příklad zobrazí informace o hostitelském programu powershellu v tabulce.
Get-Host | Format-Table -AutoSize
Rutina Get-Host
získá objekty System.Management.Automation.Internal.Host.InternalHost , které představují hostitele. Objekty se odesílají do Format-Table
kanálu a zobrazují se v tabulce. Parametr AutoSize upraví šířky sloupců, aby se minimalizovalo zkrácení.
Příklad 2: Formátování procesů podle BasePriority
V tomto příkladu jsou procesy zobrazeny ve skupinách, které mají stejnou BasePriority vlastnost.
Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap
Rutina Get-Process
získá objekty, které představují jednotlivé procesy v počítači, a odešle je do kanálu Sort-Object
. Objekty jsou seřazeny v pořadí jejich BasePriority vlastnost.
Seřazené objekty se odesílají do kanálu do Format-Table
. Parametr GroupBy uspořádá data procesu do skupin na základě jejich hodnoty vlastnosti BasePriority . Parametr Wrap zajišťuje, že se data neoříznou.
Příklad 3: Formátování procesů podle data zahájení
Tento příklad zobrazuje informace o procesech spuštěných v počítači. Objekty jsou seřazené a Format-Table
používají zobrazení k seskupení objektů podle počátečního data.
Get-Process | Sort-Object StartTime | Format-Table -View StartTime
Get-Process
získá System.Diagnostics.Process objekty, které představují procesy spuštěné v počítači. Objekty se odesílají dolů do Sort-Object
kanálu a jsou seřazeny na základě vlastnosti StartTime .
Seřazené objekty se odesílají do kanálu do Format-Table
. Parametr View určuje zobrazení StartTime definované v souboru PowerShellu DotNetTypes.format.ps1xml
pro objekty System.Diagnostics.Process . Zobrazení StartTime převede jednotlivé procesy počáteční čas na krátké datum a potom seskupí procesy podle počátečního data.
Soubor DotNetTypes.format.ps1xml
obsahuje zobrazení Priority pro procesy. Vlastní soubory můžete vytvářet format.ps1xml
s přizpůsobenými zobrazeními.
Příklad 4: Použití vlastního zobrazení pro výstup tabulky
V tomto příkladu vlastní zobrazení zobrazí obsah adresáře. Vlastní zobrazení přidá sloupec CreationTime do výstupu tabulky pro Objekty System.IO.DirectoryInfo a System.IO.FileInfo vytvořené .Get-ChildItem
Vlastní zobrazení v tomto příkladu bylo vytvořeno ze zobrazení definovaného ve zdrojovém kódu PowerShellu. Další informace o zobrazeních a kódu použitém k vytvoření tohoto příkladu najdete v tématu about_Format.ps1xml.
Get-ChildItem -Path C:\Test | Format-Table -View mygciview
Directory: C:\Test
Mode LastWriteTime CreationTime Length Name
---- ------------- ------------ ------ ----
d----- 11/4/2019 15:54 9/24/2019 15:54 Archives
d----- 8/27/2019 14:22 8/27/2019 14:22 Drawings
d----- 10/23/2019 09:38 2/25/2019 09:38 Files
-a---- 11/7/2019 11:07 11/7/2019 11:07 11345 Alias.txt
-a---- 2/27/2019 15:15 2/27/2019 15:15 258 alias_out.txt
-a---- 2/27/2019 15:16 2/27/2019 15:16 258 alias_out2.txt
Get-ChildItem
získá obsah aktuálního adresáře , C:\Test
. Objekty System.IO.DirectoryInfo a System.IO.FileInfo se odesílají do kanálu.
Format-Table
pomocí parametru View určuje vlastní zobrazení mygciview , který obsahuje sloupec CreationTime .
Výchozí Format-Table
výstup neobsahuje sloupec CreationTimeGet-ChildItem
.
Příklad 5: Použití vlastností pro výstup tabulky
Tento příklad používá parametr Property k zobrazení všech služeb počítače v tabulce se dvěma sloupci, která zobrazuje vlastnosti Name a DependentServices.
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
získá všechny služby v počítači a odešle System.ServiceProcess.ServiceController objekty dolů kanálu. Format-Table
pomocí parametru Property určuje, že vlastnosti Name a DependentServices jsou zobrazeny v tabulce.
Name a DependentServices jsou dvě vlastnosti typu objektu. Zobrazení všech vlastností: Get-Service | Get-Member -MemberType Properties
.
Příklad 6: Formátování procesu a výpočet jeho běhu
Tento příklad zobrazí tabulku s názvem procesu a celkovým časem běhu procesů poznámkového bloku místního počítače. Celkový průběžný čas se vypočítá odečtením počátečního času každého procesu od aktuálního času.
Get-Process notepad |
Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
ProcessName TotalRunningTime
----------- ----------------
notepad 03:20:00.2751767
notepad 00:00:16.7710520
Get-Process
získá všechny procesy poznámkového bloku místního počítače a odešle objekty dolů kanálu. Format-Table
zobrazí tabulku se dvěma sloupci: ProcessName, Get-Process
vlastnost a TotalRunningTime, počítanou vlastnost.
Vlastnost TotalRunningTime je určena tabulkou hash se dvěma klíči, popiskem a výrazem. Klíč Popisek určuje název vlastnosti. Klíč výrazu určuje výpočet. Výraz získá vlastnost StartTime každého objektu procesu a odečte ho od výsledku Get-Date
příkazu, který získá aktuální datum a čas.
Příklad 7: Formátování procesů poznámkového bloku
Tento příklad používá Get-CimInstance
k získání doby běhu pro všechny procesy poznámkového bloku v místním počítači. Pomocí parametru ComputerName můžete Get-CimInstance
získat informace ze vzdálených počítačů.
$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
Label = "Total Running Time"
Expression={(Get-Date) - $_.CreationDate}
}
ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922
Get-CimInstance
získá instance Win32_Process třídy WMI, které popisují všechny procesy místního počítače pojmenované notepad.exe. Objekty procesu jsou uloženy v $Processes
proměnné.
Objekty procesu v $Processes
proměnné jsou odeslány kanál , Format-Table
který zobrazuje ProcessName vlastnost a novou počítanou vlastnost Total Running Time.
Příkaz přiřadí k klíči Popisek název nové počítané vlastnosti Total Running Time (Celková doba běhu). Blok skriptu klíče výrazu vypočítá, jak dlouho proces běží, odečtením data vytvoření procesů od aktuálního data. Rutina Get-Date
získá aktuální datum. Datum vytvoření se odečte od aktuálního data. Výsledkem je hodnota celkového běhu.
Příklad 8: Řešení chyb formátu
Následující příklady ukazují výsledky přidání parametrů DisplayError nebo ShowError s výrazem.
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
InvalidArgument: Failed to evaluate expression " $_ / $null ".
Parametry
-AutoSize
Označuje, že rutina upraví velikost sloupce a počet sloupců na základě šířky dat. Ve výchozím nastavení je velikost a číslo sloupce určeny zobrazením.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-DisplayError
Označuje, že rutina zobrazuje chyby na příkazovém řádku. Tento parametr lze použít jako pomůcku ladění při formátování výrazů v Format-Table
příkazu a potřebujete řešit potíže s výrazy.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Expand
Určuje formát objektu kolekce a objektů v kolekci. Tento parametr je navržen pro formátování objektů, které podporují ICollection (System.Collections) rozhraní. Výchozí hodnota je EnumOnly. Přijatelné hodnoty pro tento parametr jsou následující:
- EnumOnly: Zobrazí vlastnosti objektů v kolekci.
- CoreOnly: Zobrazí vlastnosti objektu kolekce.
- Obojí: Zobrazí vlastnosti objektu kolekce a vlastnosti objektů v kolekci.
Typ: | String |
Přípustné hodnoty: | CoreOnly, EnumOnly, Both |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Force
Označuje, že rutina nasměruje tuto rutinu tak, aby zobrazovala všechny informace o chybě. Používá se s parametrem DisplayError nebo ShowError . Ve výchozím nastavení se při zápisu objektu chyby do chyby nebo zobrazení datových proudů zobrazí pouze některé informace o chybě.
Vyžaduje se také při formátování určitých typů .NET. Další informace najdete v části Poznámky .
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-GroupBy
Určuje seřazený výstup v samostatných tabulkách na základě hodnoty vlastnosti. Pomocí GroupBy můžete například vypsat služby v samostatných tabulkách na základě jejich stavu.
Zadejte výraz nebo vlastnost. Parametr GroupBy očekává, že se objekty seřadí.
Pomocí rutiny Sort-Object
před použitím Format-Table
seskupte objekty.
Hodnota parametru GroupBy může být nová počítaná vlastnost. Počítaná vlastnost může být blok skriptu nebo tabulka hash. Platné páry klíč-hodnota jsou:
- Název (nebo popisek) –
<string>
- Výraz –
<string>
nebo<script block>
- FormatString –
<string>
Další informace najdete v tématu about_Calculated_Properties.
Typ: | Object |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-HideTableHeaders
Vynechá záhlaví sloupců z tabulky.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InputObject
Určuje objekty, které se mají formátovat. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který objekty získá.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Property
Určuje vlastnosti objektu, které se zobrazí v zobrazení, a pořadí, ve kterém se zobrazí. Zadejte jeden nebo více názvů vlastností oddělených čárkami nebo k zobrazení počítané vlastnosti použijte tabulku hash. Jsou povoleny zástupné cardy.
Pokud tento parametr vynecháte, vlastnosti, které se zobrazí na displeji, závisí na vlastnostech prvního objektu. Pokud má například první objekt PropertyA a PropertyB, ale následné objekty mají PropertyA, PropertyB a PropertyC, zobrazí se pouze hlavičky PropertyA a PropertyB.
Parametr Property je volitelný. Parametry Vlastnosti a Zobrazení nemůžete použít ve stejném příkazu.
Hodnota parametru Property může být nová počítaná vlastnost. Počítaná vlastnost může být blok skriptu nebo tabulka hash. Platné páry klíč-hodnota jsou:
- Název (nebo popisek)
<string>
- Výraz –
<string>
nebo<script block>
- FormatString –
<string>
- Šířka –
<int32>
musí být větší než0
- Zarovnání – hodnota může být
Left
,Center
neboRight
Další informace najdete v tématu about_Calculated_Properties.
Typ: | Object[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-RepeatHeader
Opakuje se zobrazení záhlaví tabulky za celou obrazovkou. Opakované záhlaví je užitečné, když se výstup předá stránkovacímu modulu, jako less
je čtečka obrazovky nebo more
stránkování.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ShowError
Tento parametr odesílá chyby prostřednictvím kanálu. Tento parametr lze použít jako pomůcku ladění při formátování výrazů v Format-Table
příkazu a potřebujete řešit potíže s výrazy.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-View
Počínaje PowerShellem 6 se výchozí zobrazení definují ve zdrojovém kódu PowerShellu C#
. Soubory *.format.ps1xml
z PowerShellu 5.1 a starších verzí v PowerShellu 6 a novějších verzích neexistují.
Parametr View umožňuje zadat alternativní formát nebo vlastní zobrazení tabulky. Můžete použít výchozí zobrazení PowerShellu nebo vytvořit vlastní zobrazení. Další informace o tom, jak vytvořit vlastní zobrazení, naleznete v tématu about_Format.ps1xml.
Alternativní a vlastní zobrazení parametru View musí používat formát tabulky, jinak Format-Table
selže. Pokud je alternativní zobrazení seznamem, použijte rutinu Format-List
. Pokud alternativní zobrazení není seznam nebo tabulka, použijte rutinu Format-Custom
.
Parametry Vlastnosti a Zobrazení nemůžete použít ve stejném příkazu.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Wrap
Zobrazí text, který překračuje šířku sloupce na dalším řádku. Ve výchozím nastavení je text, který překračuje šířku sloupce, zkrácený.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést libovolný objekt.
Výstupy
Microsoft.PowerShell.Commands.Internal.Format
Tato rutina vrátí objekty formátu, které představují tabulku.
Poznámky
PowerShell obsahuje následující aliasy pro Format-Table
:
- Všechny platformy:
ft
PowerShell 7.2 zavedl nové funkce pro barevné zvýbarvení výstupu. Barvy je možné spravovat pomocí $PSStyle
automatické proměnné. Vlastnost $PSStyle.Formatting.TableHeader
definuje barvu použitou pro záhlaví tabulky zobrazené pomocí Format-Table
. Další informace o tomto nastavení najdete v tématu about_ANSI_Terminals.
Pokud chcete použít Format-Table
s parametrem Property, musíte parametr Force zahrnout za některé z následujících podmínek:
Vstupní objekty jsou obvykle formátovány mimo pásmo pomocí
ToString()
metody. To platí pro[string]
primitivní typy .NET, které jsou nadmnožinou předdefinovaných číselných typů, jako[int]
jsou ,[long]
a další.Vstupní objekty nemají žádné veřejné vlastnosti.
Vstupní objekty jsou instancemi typů obálky, které PowerShell používá pro výstupní streamy jiné než výstupní datový proud Success. To platí pouze v případě, že se tyto typy obálky odesílají do výstupního datového proudu Success, který vyžaduje, aby je buď zachytili prostřednictvím běžných parametrů, jako je ErrorVariable , nebo pomocí přesměrování, jako
*>&1
je .