Pagrindinis » kaip » Geek mokyklos mokymosi formatavimas, filtravimas ir palyginimas „PowerShell“

    Geek mokyklos mokymosi formatavimas, filtravimas ir palyginimas „PowerShell“

    Šiame „Geek“ mokyklos leidime mes žiūrime į dujotiekio objektų formatavimą, filtravimą ir palyginimą.

    Būtinai perskaitykite ankstesnius serijos straipsnius:

    • Sužinokite, kaip automatizuoti „Windows“ su „PowerShell“
    • Mokymasis naudoti „Cmdlet“ „PowerShell“
    • Mokymasis naudotis objektais „PowerShell“

    Visą savaitę laikykitės likusios serijos.

    Numatytasis formatavimas

    Kai pirmą kartą pradėjau su „PowerShell“, maniau, kad viskas buvo magija, bet tiesa yra tai, kad trunka šiek tiek laiko suprasti, kas vyksta po gaubtu. Tas pats pasakytina ir apie „PowerShell“ formatavimo sistemą. Iš tiesų, jei naudojate „Get-Service“ cmdlet, sukurta išvestis rodo tik 3 savybes: būseną, vardą ir rodymo pavadinimą.

    Bet jei „Get-Service“ prijungsite prie „Get-Member“, matote, kad „ServiceController“ objektai turi daug daugiau nei tik trys savybės, todėl kas vyksta?

    Atsakymas slypi paslėptame faile, kuriame apibrėžiama, kaip dauguma integruotų cmdletų rodo jų išvestį. Norėdami gauti supratimą, į apvalkalą įveskite toliau pateiktą informaciją ir paspauskite Enter.

    Notepad C: „Windows System32“ „WindowsPowerShell“ 1.0.0.0NetTypes.format.ps1xml

    Jei naudojame Notepad paieškos funkciją, galime greitai pereiti į skyrių, kuriame išsamiai aprašoma „Get-Service“ cmdlet išvestis, ieškodami „ServiceController“ tipo.

    Staiga matote, kad po gaubtu „PowerShell“ formuoja bet kokius dujotiekio objektus, kurie yra „ServiceController“ tipo ir sukuria lentelę su trimis stulpeliais: būsena, pavadinimas ir „DisplayName“. Bet ką daryti, jei tipo, su kuriuo susiduriate, neturi įrašo tame faile, ar bet kokio kito formato failo? Na, tai tikrai gana paprasta. Jei iš dujotiekio išeinantis objektas turi 5 ar daugiau savybių, „PowerShell“ parodo visas objekto ypatybes sąraše; jei jis turi mažiau nei 5 savybes, jis parodo jas lentelėje.

    Duomenų formatavimas

    Jei nesate patenkintas numatytu objekto ar tipo formatavimu, galite sukti savo formatavimą. Yra trys cmdlet, kurias reikia žinoti, kad tai atliktumėte.

    • Formatas-sąrašas
    • Formatas-lentelė
    • Formatas - platus

    Formatas - platus tiesiog užima objektų rinkinį ir parodo vieną kiekvieno objekto nuosavybę. Pagal numatytuosius nustatymus jis ieškos pavadinimo savybės; jei jūsų objektuose nėra vardo savybės, ji naudos pirmą objekto savybę, kai savybės bus rūšiuojamos abėcėlės tvarka.

    „Get-Service“ Formatas - platus

    Kaip matote, jis taip pat yra dviejų stulpelių numatytasis parametras, nors galite nurodyti, kurią savybę norite naudoti, ir kiek stulpelių norite rodyti.

    „Get-Service“ Formatas - platus - ypatybės rodymo pavadinimas - 6 skiltis

    Jei kažkas yra formatuota kaip lentelė pagal nutylėjimą, visada galite perjungti jį į sąrašo vaizdą naudodami cmdlet formato sąrašą. Pažvelkime į „Get-Process“ cmdlet išvestį.

    Šis lentelės rodinys tikrai puikiai tinka šiai informacijai, tačiau apsimesti, kad norime jį peržiūrėti sąrašo forma. Viskas, ką mes turime padaryti, yra tai, kad tai būtų Formatas-sąrašas.

    Gauti procesas Formatas-sąrašas

    Kaip matote, sąraše pagal numatytuosius nustatymus yra tik keturi elementai. Norėdami peržiūrėti visas objekto savybes, galite naudoti pakaitos simbolį.

    Gauti procesas Formatas-sąrašas -Nuosavybė *

    Arba galite pasirinkti tik norimas savybes.

    Gauti procesas Formatas-sąrašas -Kurto pavadinimas, ID

    Formatas-lentelė, kita vertus, priima duomenis ir paverčia juos lentele. Kadangi mūsų „Get-Process“ duomenys jau yra lentelės pavidalu, mes galime jį naudoti norėdami lengvai pasirinkti lentelėje nurodytas savybes. Naudodamas „AutoSize“ parametrą, visi duomenys sutapo su vienu ekranu.

    Gauti procesas Formatas-lentelės pavadinimas, id -AutoSize

    Filtravimas ir palyginimas

    Vienas iš geriausių dalykų, naudojant objekto vamzdyną, yra tas, kad bet kuriame etape galite filtruoti objektus iš dujotiekio, naudodamiesi „Kur-objekto cmdlet“.

    „Get-Service“ Kur-Objektas $ _. Būsena -eq „Veikia“

    Naudojimas, kur objektas yra labai paprastas. $ _ reiškia dabartinį dujotiekio objektą, iš kurio galite pasirinkti norimą filtruoti objektą. Čia buvo laikomi tik objektai, kuriuose „Status“ nuosavybė yra lygi veikimui. Yra keletas palyginimo operatorių, kuriuos galite naudoti filtravimo scenarijaus bloke:

    • eq (lygus)
    • neq (ne lygus)
    • gt (didesnis nei)
    • ge (didesnis nei arba lygus)
    • lt (mažiau nei)
    • le (mažiau nei lygi)
    • patinka („Wildcard String Match“)

    Visą sąrašą ir daugiau informacijos galima rasti konceptualios pagalbos faile apie_nelygą, tačiau tam tikru laiku prireikia priprasti prie „Kur-Obeject“ sintaksės. Tai viskas šiam laikui!