Még egyszer formázás (Format-Table, Format-Wide)

Az előzőekben láthattuk, hogy a select-object segítségével kiszámoltathatunk új tulajdonságértékeket is. Azonban ilyesmire a format-table  is alkalmas:

[9] PS C:\old>Get-ChildItem | Format-Table name,@{Expression={if($_.psiscont

ainer){"Könyvtár"}else{"Fájl"}};Label="Típus";width=10}

 

Name                                                             Típus

----                                                             -----

alfolder                                                         Könyvtár

alice.txt                                                        Fájl

coffee.txt                                                       Fájl

dir.xml                                                          Fájl

Azaz itt is megadható egy hashtábla kifejezés, amit a format-table kiszámol, illetve beépít a táblázatba. A hashtábla lehetséges címkéi:

Mező

Jelentése

Expression

A kiszámolandó kifejezés

Label

A táblázat oszlopának címkéje

Width

Az oszlop szélessége

FormatString

Formázó operátornál használatos formázó kifejezés

Alignment

Rendezés, lehetséges értékek: „Left”, „Center” és „Right

Ez annyiban különbözik a select-object-es átalakítástól, hogy itt az eredeti objektumhoz nem nyúlunk, az minden eredeti tulajdonságát és a típusát megőrzi, csak a megjelenítést változtatjuk meg.

Nézzünk még egy példát:

PS C:\> Get-Process | Format-Table name, id, @{

>> label = "Mióta";

>> expression = {((get-date) - $_.starttime).totalseconds};

>> formatstring = "n0";

>> alignment = "right"}

>> 

 

Name                                              Id                     Mióta

----                                              --                     -----

audiodg                                          688

btdna                                           1696                    36 611

conhost                                         1028                       456

conhost                                         4876                     2 451

csrss                                            416

csrss                                            504

daemon                                          2524                    36 613

Ha nagyon sok elemet akarunk megjeleníteni és nem annyira érdekes több tulajdonság megjelenítése, akkor használhatjuk a Format-Wide  megjelenítést:

[3] PS C:\> dir | Format-Wide

 

 

    Directory: C:\

 

 

 

[Lurdy]                                 [munka]

[PerfLogs]                              [Program Files]

[Program Files (x86)]                   [reflector]

[sokfájl]                               [Users]

[Windows]                               fájl.txt

kon.psc1                                obj.xml

service.html

Itt is van jó néhány lehetőségünk a további testre szabásra. Például optimálisabban használhatjuk ki a rendelkezésünkre álló képernyőt az –AutoSize kapcsolóval:

[6] PS C:\> dir | Format-Wide -Property name -AutoSize

 

 

Lurdy                      munka                     PerfLogs

Program Files              Program Files (x86)       reflector

sokfájl                    Users                     Windows

fájl.txt                   kon.psc1                  obj.xml

service.html

Látható, hogy viszont itt elvesztettünk néhány „okos” formázást, mint például a „fejlécet” és a könyvtárak nevének szögletes zárójelbe tételét, mert ezeket nem alaphelyzetben a Format-Wide tudja, hanem a fájl és mappatípushoz definiált formátumleíró XML állomány, ezekről már korábban az 1.9.3 Típusok testre szabása PS1XML fájlok nélkül (Update-TypeData) fejezetben olvashattak. Cserébe kérhetünk csoportosítást és megadhatjuk, hogy hány oszlopot kérünk:

[9] PS C:\> dir | Format-Wide -Property name -Column 2 -GroupBy psiscontainer

 

 

   PSIsContainer: True

 

 

Lurdy                                   munka

PerfLogs                                Program Files

Program Files (x86)                     reflector

sokfájl                                 Users

Windows

 

 

   PSIsContainer: False

 

 

fájl.txt                                kon.psc1

obj.xml                                 service.html

Ebben a példában a PSIsContainer tulajdonság alapján csoportosítást is kértem.



Word To HTML Converter