Sdílet prostřednictvím


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-Processzíská System.Diagnostics.Process objekty, které představují procesy spuštěné v počítači. Objekty se odesílají dolů do Sort-Objectkaná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-Tablepomocí 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-Processzí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-CimInstancezí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-Tablekterý 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, Centernebo Right

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

PSObject

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: