Geek School: Študovanie formátu, filtrovanie a porovnávanie v PowerShell

Obsah:

Geek School: Študovanie formátu, filtrovanie a porovnávanie v PowerShell
Geek School: Študovanie formátu, filtrovanie a porovnávanie v PowerShell

Video: Geek School: Študovanie formátu, filtrovanie a porovnávanie v PowerShell

Video: Geek School: Študovanie formátu, filtrovanie a porovnávanie v PowerShell
Video: TOP 10 Počítačové lifehacky, které vám usnadní život - YouTube 2024, Smieť
Anonim
V tomto vydaní Geek School sa pozrieme na formátovanie, filtrovanie a porovnávanie objektov v potrubí.
V tomto vydaní Geek School sa pozrieme na formátovanie, filtrovanie a porovnávanie objektov v potrubí.

Nezabudnite si prečítať predchádzajúce články v sérii:

  • Naučte sa ako automatizovať systém Windows pomocou nástroja PowerShell
  • Naučiť sa používať Cmdlets v PowerShell
  • Učenie ako používať objekty v PowerShell

A zostávajte celú týždeň na zvyšok série.

Predvolené formátovanie

Keď som prvýkrát začal používať PowerShell, myslel som si, že všetko je kúzlo, ale pravdou je, že trvá len trochu času, aby sme pochopili, čo sa deje pod kapucňou. To isté platí pre formátovací systém PowerShell. V skutočnosti, ak spustíte Get-Service cmdlet, generovaný výstup zobrazí iba tri vlastnosti: Status, Name a DisplayName.

Ak však dáte Get-Service na Get-Member, uvidíte, že objekty ServiceController majú oveľa viac ako len tieto tri vlastnosti, takže čo sa deje?
Ak však dáte Get-Service na Get-Member, uvidíte, že objekty ServiceController majú oveľa viac ako len tieto tri vlastnosti, takže čo sa deje?
Odpoveď spočíva v skrytom súbore, ktorý definuje, ako väčšina zabudovaných cmdletov zobrazuje ich výstup. Ak chcete získať pochopenie, zadajte do shellu nasledujúce a stlačte Enter.
Odpoveď spočíva v skrytom súbore, ktorý definuje, ako väčšina zabudovaných cmdletov zobrazuje ich výstup. Ak chcete získať pochopenie, zadajte do shellu nasledujúce a stlačte Enter.

notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml

Ak použijeme funkciu Vyhľadávač poznámok, môžeme rýchlo preskočiť na sekciu, ktorá podrobne opisuje výstup cmdletu Get-Service vyhľadaním typu ServiceController.

Zrazu môžete vidieť, že pod kapotou PowerShell sa formátujú všetky objekty v potrubí, ktoré sú typu ServiceController a vytvorí sa tabuľka s troma stĺpcami: Status, Name a DisplayName. Ale čo ak typ, s ktorým máte čo do činenia, nemá záznam v tomto súbore alebo iný formátový súbor? No, to je celkom jednoduché. Ak objekt vychádzajúci z potrubia má 5 alebo viac vlastností, PowerShell zobrazí všetky vlastnosti objektu v zozname; ak má menej ako 5 vlastností, zobrazuje ich v tabuľke.
Zrazu môžete vidieť, že pod kapotou PowerShell sa formátujú všetky objekty v potrubí, ktoré sú typu ServiceController a vytvorí sa tabuľka s troma stĺpcami: Status, Name a DisplayName. Ale čo ak typ, s ktorým máte čo do činenia, nemá záznam v tomto súbore alebo iný formátový súbor? No, to je celkom jednoduché. Ak objekt vychádzajúci z potrubia má 5 alebo viac vlastností, PowerShell zobrazí všetky vlastnosti objektu v zozname; ak má menej ako 5 vlastností, zobrazuje ich v tabuľke.

Formátovanie údajov

Ak nie ste spokojní s predvoleným formátovaním objektu alebo typu, môžete si upraviť vlastné formátovanie. Existujú tri cmdlety, ktoré potrebujete vedieť.

  • Format-List
  • Format-Table
  • Format-Wide
Image
Image

Format-Wide jednoducho berie zbierku objektov a zobrazí jednu vlastnosť každého objektu. Štandardne bude vyhľadávať vlastnosť názvu; ak vaše objekty neobsahujú vlastnosť názvu, použije prvú vlastnosť objektu, akonáhle sú vlastnosti zoradené abecedne.

Get-Service | Format-Wide

Ako vidíte, je tiež predvolené dva stĺpce, hoci môžete určiť ako vlastnosť, ktorú chcete použiť, ako aj počet stĺpcov, ktoré chcete zobraziť.
Ako vidíte, je tiež predvolené dva stĺpce, hoci môžete určiť ako vlastnosť, ktorú chcete použiť, ako aj počet stĺpcov, ktoré chcete zobraziť.

Get-Service | Format-Wide -Property DisplayName -Column 6

Ak je niečo nakonfigurované ako tabuľka v predvolenom nastavení, môžete ho vždy prepnúť do zobrazenia zoznamu pomocou skratky Format-List. Poďme sa pozrieť na výstup cmdlet Get-Process.
Ak je niečo nakonfigurované ako tabuľka v predvolenom nastavení, môžete ho vždy prepnúť do zobrazenia zoznamu pomocou skratky Format-List. Poďme sa pozrieť na výstup cmdlet Get-Process.
Image
Image

Tento tabuľkový prehľad skutočne vyhovuje tomuto typu informácií veľmi dobre, ale predstierame, že ho chceme zobraziť vo forme zoznamu. Všetko, čo naozaj musíme urobiť, je to, aby to bolo Format-List.

Get-Process | Format-List

Ako vidíte, v predvolenom nastavení sú v zozname iba štyri položky. Ak chcete zobraziť všetky vlastnosti objektu, môžete použiť zástupný znak.
Ako vidíte, v predvolenom nastavení sú v zozname iba štyri položky. Ak chcete zobraziť všetky vlastnosti objektu, môžete použiť zástupný znak.

Get-Process | Format-List –Property *

Alternatívne môžete vybrať len požadované vlastnosti.
Alternatívne môžete vybrať len požadované vlastnosti.

Get-Process | Format-List –Property name,id

Image
Image

Format-Table, na druhej strane berie údaje a mení ich na stôl. Vzhľadom na to, že naše dáta zo služby Get-Process sú už vo forme tabuľky, môžeme ju použiť na ľahké výbery vlastností, ktoré chceme zobraziť v tabuľke. Použil som parameter AutoSize, aby sa všetky údaje prispôsobili jednej obrazovke.

Get-Process | Format-Table name,id –AutoSize

Image
Image

Filtrovanie a porovnávanie

Jednou z najlepších vecí, pokiaľ ide o používanie objektovo orientovaného potrubia, je, že môžete použiť filtrovanie objektov z potrubia v ľubovoľnom kroku pomocou rutiny Kde-Object.

Get-Service | Where-Object {$_.Status -eq “Running”}

Použitie, kde je objekt skutočne veľmi jednoduchý. $ predstavuje aktuálny objekt potrubia, z ktorého si môžete vybrať vlastnosť, ktorú chcete filtrovať. Tu sa nachádzajú iba objekty, v ktorých sa stav Vlastnosť rovná spusteniu. Existuje niekoľko porovnávacích operátorov, ktoré môžete použiť v bloku filtrovania:
Použitie, kde je objekt skutočne veľmi jednoduchý. $ predstavuje aktuálny objekt potrubia, z ktorého si môžete vybrať vlastnosť, ktorú chcete filtrovať. Tu sa nachádzajú iba objekty, v ktorých sa stav Vlastnosť rovná spusteniu. Existuje niekoľko porovnávacích operátorov, ktoré môžete použiť v bloku filtrovania:
  • eq (Equal To)
  • neq (nie je rovná)
  • gt (väčšia ako)
  • ge (väčšia ako rovná)
  • (menej ako)
  • le (menej ako alebo rovno)
  • ako (Zápasový reťazec zápas)

Úplný zoznam a ďalšie informácie si môžete pozrieť v koncepčnom súbore nápovedy "about_comparison", avšak niekedy trvá zvyknúť si na syntax Kde-Object. To je všetko za tento čas!

Odporúča: