Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PowerShell obsahuje sadu rutin, které umožňují řídit, jak se vlastnosti zobrazují pro konkrétní objekty. Názvy všech cmdletů začínají slovesem Format. Umožňují vybrat, které vlastnosti chcete zobrazit.
Get-Command -Verb Format -Module Microsoft.PowerShell.Utility
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Format-Custom 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Hex 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-List 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Table 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Wide 6.1.0.0 Microsoft.PowerShell.Utility
Tento článek popisuje rutiny příkazů Format-Wide, Format-Lista Format-Table.
Každý typ objektu v PowerShellu má výchozí vlastnosti, které se použijí, když nevyberete vlastnosti, které se mají zobrazit. Každá rutina používá stejný parametr Vlastnost k určení požadovaných vlastností. Protože Format-Wide zobrazuje pouze jednu vlastnost, jeho Vlastnost parametr přijímá pouze jednu hodnotu, ale Vlastnost parametr Format-List a Format-Table přijímá seznam názvů vlastností.
V tomto příkladu výchozí výstup rutiny Get-Process ukazuje, že máme spuštěné dvě instance Internet Exploreru.
Get-Process -Name iexplore
Výchozí formát pro objekty Process zobrazí vlastnosti uvedené zde:
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
32 25.52 10.25 13.11 12808 1 iexplore
52 11.46 26.46 3.55 21748 1 iexplore
Použití Format-Wide pro jednopoložkový výstup
Rutina Format-Wide ve výchozím nastavení zobrazuje pouze výchozí vlastnost objektu. Informace přidružené k jednotlivým objektům se zobrazí v jednom sloupci:
Get-Command -Verb Format | Format-Wide
Format-Custom Format-Hex
Format-List Format-Table
Format-Wide
Můžete také zadat vlastnost, která není výchozí:
Get-Command -Verb Format | Format-Wide -Property Noun
Custom Hex
List Table
Wide
Ovládání displeje Format-Wide pomocí sloupce
Pomocí rutiny Format-Wide můžete současně zobrazit pouze jednu vlastnost. To usnadňuje zobrazení velkých seznamů ve více sloupcích.
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex List
Table Wide
Použití Format-List pro zobrazení seznamu
Rutina Format-List zobrazí objekt ve formě výpisu s každou vlastností označenou a zobrazenou na samostatném řádku:
Get-Process -Name iexplore | Format-List
Id : 12808
Handles : 578
CPU : 13.140625
SI : 1
Name : iexplore
Id : 21748
Handles : 641
CPU : 3.59375
SI : 1
Name : iexplore
Můžete zadat libovolný počet vlastností:
Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:58 AM
Id : 12808
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:57 AM
Id : 21748
Získání podrobných informací pomocí Format-List se zástupnými cardy
Cmdlet Format-List umožňuje použít zástupný znak jako hodnotu parametru Property. Díky tomu můžete zobrazit podrobné informace. Objekty často obsahují více informací, než potřebujete, a proto PowerShell ve výchozím nastavení nezobrazuje všechny hodnoty vlastností. Pokud chcete zobrazit všechny vlastnosti objektu, použijte příkaz Format-List -Property *. Následující příkaz vygeneruje pro jeden proces více než 60 řádků výstupu:
Get-Process -Name iexplore | Format-List -Property *
I když je příkaz Format-List užitečný pro zobrazení podrobností, pokud chcete zobrazit přehled výstupu, který obsahuje mnoho položek, jednodušší tabulkové zobrazení je často užitečnější.
Použití Format-Table pro tabulkový výstup
Pokud k formátování výstupu příkazu Get-Process použijete rutinu Format-Table bez názvů vlastností, získáte úplně stejný výstup jako bez rutiny Format. PowerShell ve výchozím nastavení zobrazuje Proces objekty v tabulkovém formátu.
Get-Service -Name win* | Format-Table
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProx... WinHTTP Web Proxy Auto-Discovery Se...
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Manag...
Poznámka:
Get-Service je k dispozici pouze na platformách Windows.
Zlepšování výstupu Format-Table
I když je tabulkové zobrazení užitečné pro zobrazení velkého množství informací, může být obtížné interpretovat, pokud je zobrazení pro data příliš úzké. V předchozím příkladu je výstup zkrácen. Pokud při spuštění příkazu Format-Table zadáte parametr AutoSize, PowerShell vypočítá šířky sloupců na základě zobrazených skutečných dat. Díky tomu budou sloupce čitelné.
Get-Service -Name win* | Format-Table -AutoSize
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProxySvc WinHTTP Web Proxy Auto-Discovery Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Management)
Cmdlet Format-Table může stále zkrátit data, ale ke zkrácení dochází pouze na konci obrazovky.
Vlastnosti, jiné než poslední zobrazené, jsou dány tolik velikosti, kolik potřebují, aby se jejich nejdelší datový prvek zobrazoval správně.
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -AutoSize
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc, iphl…
Winmgmt Running Automatic Windows Management Instrumentation {vmms, TPHKLO…
WinRM Running Automatic Windows Remote Management (WS-Management) {}
Příkaz Format-Table předpokládá, že vlastnosti jsou uvedeny v pořadí důležitosti. Cmdlet se pokusí plně zobrazit vlastnosti nejblíže začátku. Pokud příkaz Format-Table nemůže zobrazit všechny vlastnosti, odebere některé sloupce ze zobrazení. Toto chování můžete vidět v předchozím příkladu vlastnosti DependentServices.
Zabalení výstupu Format-Table do sloupců
Pomocí parametru Wrap můžete vynutit, aby se dlouhá data Format-Table zalámala do svého sloupce zobrazení. Použití parametru Wrap možná neudělá, co očekáváte, protože používá výchozí nastavení, pokud také nezadáte Automatická velikost:
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -Wrap
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc,
iphlpsvc}
Winmgmt Running Automatic Windows Management Instrumentation {vmms,
TPHKLOAD,
SUService,
smstsmgr…}
WinRM Running Automatic Windows Remote Management (WS-Management) {}
Použití parametru Wrap samotným nezpomaluje zpracování příliš. Použití automatické velikosti k naformátování rekurzivního seznamu souborů velké adresářové struktury může zabrat dlouhou dobu a spotřebovat hodně paměti před zobrazením prvních výstupních položek.
Pokud vás nezajímá zatížení systému, AutoSize funguje dobře s parametrem Wrap. Počáteční sloupce stále používají tolik šířky, kolik potřebujete k zobrazení položek na jednom řádku, ale konečný sloupec je v případě potřeby zabalený.
Poznámka:
Některé sloupce nemusí být zobrazeny při prvním zadání nejširších sloupců. Nejlepších výsledků dosáhnete tak, že nejprve zadáte nejmenší datové prvky.
V následujícím příkladu nejprve určíme nejširší vlastnosti.
Get-Process -Name iexplore |
Format-Table -Wrap -AutoSize -Property FileVersion, Path, Name, Id
I při zabalení se vynechá poslední ID sloupce:
FileVersion Path Nam
e
----------- ---- ---
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE iex
plo
re
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files\Internet Explorer\iexplore.exe iex
plo
re
Uspořádání výstupu tabulky
Dalším užitečným parametrem pro ovládací prvek tabulkového výstupu je GroupBy. Delší tabulkové výpisy mohou být obtížné porovnat. GroupBy seskupí výstup podle hodnoty vlastnosti. Služby můžeme například seskupit podle StartType, aby se usnadnila kontrola, když z výpisu vlastností vynecháme hodnotu StartType:
Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType
StartType: Automatic
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Managem…
StartType: Manual
Status Name DisplayName
------ ---- -----------
Running WinHttpAutoProxyS… WinHTTP Web Proxy Auto-Discovery Serv…