Formátumparancsok használata a kimeneti nézet módosításához
A PowerShell olyan parancsmagokkal rendelkezik, amelyekkel szabályozhatja, hogy az egyes objektumok tulajdonságai hogyan jelenjenek meg. Az összes parancsmag neve az igével Format
kezdődik. Ezek segítségével kiválaszthatja, hogy mely tulajdonságokat szeretné megjeleníteni.
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
Ez a cikk a , Format-List
és Format-Table
a Format-Wide
parancsmagokat ismerteti.
A PowerShell minden objektumtípusa alapértelmezett tulajdonságokkal rendelkezik, amelyeket akkor használ, ha nem választja ki a megjelenítendő tulajdonságokat. Minden parancsmag ugyanazt a tulajdonságparamétert használja annak megadásához, hogy mely tulajdonságok jelenjenek meg. Mivel Format-Wide
csak egyetlen tulajdonságot jelenít meg, a tulajdonságparaméter csak egyetlen értéket vesz fel, de a tulajdonságnevek tulajdonságparaméterei Format-List
és Format-Table
elfogadása.
Ebben a példában a parancsmag alapértelmezett kimenete Get-Process
azt mutatja, hogy az Internet Explorer két példánya fut.
Get-Process -Name iexplore
A Folyamatobjektumok alapértelmezett formátuma az itt látható tulajdonságokat jeleníti meg:
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
A Format-Wide használata egyelemes kimenethez
A Format-Wide
parancsmag alapértelmezés szerint csak az objektum alapértelmezett tulajdonságát jeleníti meg. Az egyes objektumokhoz társított információk egyetlen oszlopban jelennek meg:
Get-Command -Verb Format | Format-Wide
Format-Custom Format-Hex
Format-List Format-Table
Format-Wide
Megadhat egy nem alapértelmezett tulajdonságot is:
Get-Command -Verb Format | Format-Wide -Property Noun
Custom Hex
List Table
Wide
Formátumszintű megjelenítés vezérlése oszlopokkal
Format-Wide
A parancsmaggal egyszerre csak egyetlen tulajdonság jeleníthető meg. Ez hasznossá teszi a nagyméretű listák több oszlopban való megjelenítését.
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex List
Table Wide
Formátumlista használata listanézethez
A Format-List
parancsmag egy objektumot jelenít meg listaelem formájában, minden tulajdonságot külön sorban címkézve és megjelenítve:
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
Annyi tulajdonságot adhat meg, amennyit csak szeretne:
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
Részletes információk lekérése helyettesítő karakterekkel a Format-List használatával
A Format-List
parancsmag lehetővé teszi helyettesítő karakter használatát a tulajdonságparaméter értékeként. Ez lehetővé teszi a részletes információk megjelenítését. Az objektumok gyakran a szükségesnél több információt tartalmaznak, ezért a PowerShell alapértelmezés szerint nem jeleníti meg az összes tulajdonságértéket. Egy objektum összes tulajdonságának megjelenítéséhez használja a Format-List -Property *
parancsot. A következő parancs több mint 60 sornyi kimenetet generál egyetlen folyamathoz:
Get-Process -Name iexplore | Format-List -Property *
Bár a Format-List
parancs hasznos a részletek megjelenítéséhez, ha több elemet tartalmazó kimenet áttekintésére van szüksége, az egyszerűbb táblázatos nézet gyakran hasznosabb.
Formátumtáblázat használata táblázatos kimenethez
Ha a Format-Table
parancs kimenetének Get-Process
formázásához nem megadott tulajdonságneveket tartalmazó parancsmagot használ, pontosan ugyanazt a kimenetet kapja, mint a parancsmag nélkül Format
. A PowerShell alapértelmezés szerint táblázatos formátumban jeleníti meg a folyamatobjektumokat .
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...
Feljegyzés
Get-Service
csak Windows-platformokon érhető el.
A Format-Table kimenetének javítása
Bár a táblázatos nézet sok információ megjelenítéséhez hasznos, nehéz lehet értelmezni, ha a megjelenítés túl keskeny az adatokhoz. Az előző példában a kimenet csonkolt. Ha a parancs futtatásakor adja meg az AutoSize paramétert , a Format-Table
PowerShell az oszlopszélességeket a tényleges megjelenített adatok alapján számítja ki. Ez olvashatóvá teszi az oszlopokat.
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)
Előfordulhat, hogy a Format-Table
parancsmag továbbra is csonkolja az adatokat, de csak a képernyő végén csonkolja.
Az utolsótól eltérő tulajdonságok annyi méretet kapnak, amennyi a leghosszabb adatelem helyes megjelenítéséhez szükséges.
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) {}
A Format-Table
parancs feltételezi, hogy a tulajdonságok fontossági sorrendben vannak felsorolva. A parancsmag megpróbálja teljesen megjeleníteni az elejéhez legközelebbi tulajdonságokat. Ha a Format-Table
parancs nem tudja megjeleníteni az összes tulajdonságot, eltávolít néhány oszlopot a megjelenítésből. Ezt a viselkedést a DependentServices tulajdonság előző példájában tekintheti meg.
Formázási tábla kimenetének körbefuttatása oszlopokban
A Wrap paraméterrel kényszerítheti a hosszadalmas Format-Table
adatok tördelésére a megjelenítési oszlopban. Előfordulhat, hogy a Wrap paraméter használata nem azt teszi, amit vár, mivel az alapértelmezett beállításokat használja, ha nem adja meg az Automatikus méretezést is:
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) {}
A Wrap paraméter önmagában nem lassítja a feldolgozást. Az AutoSize használata azonban egy nagy könyvtárstruktúra rekurzív fájllistáinak formázásához hosszú időt vehet igénybe, és sok memóriát használhat az első kimeneti elemek megjelenítése előtt.
Ha nem aggódik a rendszer terhelése miatt, akkor az AutoSize jól működik a Wrap paraméterrel. A kezdeti oszlopok továbbra is a szükséges szélességet használják az elemek egy sorban való megjelenítéséhez, de szükség esetén a végső oszlop be van csomagolva.
Feljegyzés
Előfordulhat, hogy egyes oszlopok nem jelennek meg a legszélesebb oszlopok első megadásakor. A legjobb eredmény érdekében először adja meg a legkisebb adatelemeket.
Az alábbi példában először a legszélesebb tulajdonságokat adhatja meg.
Get-Process -Name iexplore |
Format-Table -Wrap -AutoSize -Property FileVersion, Path, Name, Id
Még a körbefuttatás esetén is a végleges Azonosító oszlop hiányzik:
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
Táblakimenet rendszerezése
A táblázatos kimeneti vezérlő egy másik hasznos paramétere a GroupBy. A hosszabb táblázatos listaelemeket különösen nehéz lehet összehasonlítani. A GroupBy paraméter tulajdonságérték alapján csoportosítja a kimenetet. Például csoportosíthatjuk a szolgáltatásokat a StartType szerint a könnyebb ellenőrzés érdekében, és kihagyhatjuk a StartType értéket a tulajdonságlistából:
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…
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: