Geeki kool: PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine

Sisukord:

Geeki kool: PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine
Geeki kool: PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine

Video: Geeki kool: PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine

Video: Geeki kool: PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine
Video: Overlay Mosaic Crochet Live Pouch Pattern, No Ends! - YouTube 2024, Märts
Anonim
Selles Geeki kooli väljaandes vaatleme torujuhtmes olevate objektide vormistamist, filtreerimist ja võrdlemist.
Selles Geeki kooli väljaandes vaatleme torujuhtmes olevate objektide vormistamist, filtreerimist ja võrdlemist.

Vaadake kindlasti eelmise sarja artikleid:

  • Lugege, kuidas automatiseerida Windows PowerShelliga
  • Õpime PowerShellis kasutama kommuteid
  • PowerShellis Objektide kasutamise õppimine

Ja jääge häälestatuks ülejäänud sarja kogu nädala jooksul.

Vaikimisi vormindamine

Kui ma esimest korda PowerShelliga alustan, mõtlesin, et kõik on maagiline, kuid tõde on see, et lihtsalt mõni aeg mõista, mis toimub kapoti all. Sama kehtib ka PowerShelli vormindussüsteemi kohta. Kui käivitate cmdlet Get-Service, kuvatakse ainult väljundis 3 omadust: olek, nimi ja DisplayName.

Kuid kui kasutate käsku Get-Service Get-liikmeks, näete, et ServiceControlleri objektidel on palju enamat kui ainult need kolm omadust, nii et mis toimub?
Kuid kui kasutate käsku Get-Service Get-liikmeks, näete, et ServiceControlleri objektidel on palju enamat kui ainult need kolm omadust, nii et mis toimub?
Vastus peitub peidetud failis, mis määratleb, kuidas enamus sisseehitatud cmdletutest näitavad oma väljundit. Mõistmise saamiseks sisestage järgmine koopia ja vajutage sisestusklahvi.
Vastus peitub peidetud failis, mis määratleb, kuidas enamus sisseehitatud cmdletutest näitavad oma väljundit. Mõistmise saamiseks sisestage järgmine koopia ja vajutage sisestusklahvi.

notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml

Kui me kasutame noteerimisfunktsiooni Find funktsiooni, võime kiiresti otsida ServiceControlleri tüübi otsimiseks jaotisse, kus kirjeldatakse Get-Service'i cmdlet väljundit.

Järsku näete, et kapoti all on PowerShell vormindab kõik torujuhtme objektid, mis on ServiceControlleri tüüpi ja loovad kolme veergu sisaldava tabeli: Staatus, Nimi ja DisplayName. Aga mis siis, kui tüübiga, millega te tegelete, pole selles failis kirje või mõne muu formaadifaili? Noh, see on tegelikult päris lihtne. Kui gaasijuhtmest väljuv objekt sisaldab 5 või enam omadust, kuvab PowerShell kõik loendi objekti omadused; kui see sisaldab vähem kui 5 omadust, kuvab see tabelis.
Järsku näete, et kapoti all on PowerShell vormindab kõik torujuhtme objektid, mis on ServiceControlleri tüüpi ja loovad kolme veergu sisaldava tabeli: Staatus, Nimi ja DisplayName. Aga mis siis, kui tüübiga, millega te tegelete, pole selles failis kirje või mõne muu formaadifaili? Noh, see on tegelikult päris lihtne. Kui gaasijuhtmest väljuv objekt sisaldab 5 või enam omadust, kuvab PowerShell kõik loendi objekti omadused; kui see sisaldab vähem kui 5 omadust, kuvab see tabelis.

Teie andmete vormindamine

Kui te ei ole rahul objekti või tüübi vaikimisi vormindamisega, saate oma vormingut rullida. Selleks on vaja kolm cmdletti, mida pead teadma.

  • Formaat-nimekiri
  • Formaat-tabel
  • Formaat-lai
Image
Image

Formaat-lai võtab lihtsalt objektide kogu ja kuvab iga objekti ühe omaduse. Vaikimisi otsib see nimevara; kui teie objektid ei sisalda nimeomadust, kasutab ta objekti esimest vara pärast seda, kui omadused on sorteeritud tähestikuliselt.

Get-Service | Format-Wide

Nagu näete, on vaikimisi ka kaks veergu, kuigi saate määrata, millist vara soovite kasutada, kui ka seda, kui palju veerge soovite kuvada.
Nagu näete, on vaikimisi ka kaks veergu, kuigi saate määrata, millist vara soovite kasutada, kui ka seda, kui palju veerge soovite kuvada.

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

Kui midagi on vaikimisi laua kujundatud, võite selle alati loendivaatele lülitada, kasutades selleks vormingu-loendi käsku. Vaatame Get-Processi cmdlet väljundit.
Kui midagi on vaikimisi laua kujundatud, võite selle alati loendivaatele lülitada, kasutades selleks vormingu-loendi käsku. Vaatame Get-Processi cmdlet väljundit.
Image
Image

See tabeli vaade sobib väga hästi sellisele teabele, kuid teeme ette, et tahame seda loendi vormis vaadata. Kõik, mida me peame tõesti tegema, on toru see sisse Formaat-nimekiri.

Get-Process | Format-List

Nagu näete, on loendis vaikimisi vaid neli elementi. Kõigi objekti omaduste vaatamiseks võite kasutada metamärki.
Nagu näete, on loendis vaikimisi vaid neli elementi. Kõigi objekti omaduste vaatamiseks võite kasutada metamärki.

Get-Process | Format-List –Property *

Teise võimalusena saate valida just soovitud omadused.
Teise võimalusena saate valida just soovitud omadused.

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

Image
Image

Formaat-tabel teisalt võtab andmeid ja muudab selle tabelisse. Kuna meie Get-Processist saadud andmed on juba tabeli kujul, võime seda kasutada, et lihtsalt valida tabelis kuvatavad omadused. Ma kasutasin parameetrit AutoSize, et kõik andmed sobiksid ühele ekraanile.

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

Image
Image

Filtreerimine ja võrdlemine

Üks objektoripõhise torujuhtme kasutamise parimatest asjadest on see, et saate objektidest torujuhtmetest filtreerida mis tahes etapis, kasutades Where-Objekti cmdletti.

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

Kasutades objekti tegelikult väga lihtsat. $ tähistab praegust torujuhtme objekti, kust saate valida vara, mida soovite filtreerida. Siin olid ainult objektide hoidmine, kus oleku vara võrdub käitamisega. Filtrite skripti blokeeringus on mõned võrdlusettevõtted:
Kasutades objekti tegelikult väga lihtsat. $ tähistab praegust torujuhtme objekti, kust saate valida vara, mida soovite filtreerida. Siin olid ainult objektide hoidmine, kus oleku vara võrdub käitamisega. Filtrite skripti blokeeringus on mõned võrdlusettevõtted:
  • eq (võrdsed)
  • neq (ei võrdu)
  • gt (suurem kui)
  • ge (suurem kui võrdne)
  • see (vähem kui)
  • le (vähem kui võrdne)
  • nagu (Wildcard String Match)

Täielikku nimekirja ja lisateavet saab vaadata umbes võrdluskontseptuaalsest abifailist, kuid see võtab veidi aega, et kasutada kus-Obejekti süntaksit. See on kõik selleks ajaks!

Soovitan: