Geek-koulu: oppimisen muotoilu, suodatus ja vertailu PowerShellissä

Sisällysluettelo:

Geek-koulu: oppimisen muotoilu, suodatus ja vertailu PowerShellissä
Geek-koulu: oppimisen muotoilu, suodatus ja vertailu PowerShellissä

Video: Geek-koulu: oppimisen muotoilu, suodatus ja vertailu PowerShellissä

Video: Geek-koulu: oppimisen muotoilu, suodatus ja vertailu PowerShellissä
Video: Scriptcase - Course certificate generator system with QR and online validation 1/3 - YouTube 2024, Huhtikuu
Anonim
Tässä Geek School -versiossa tarkastelemme Pipelineen esineiden muotoilua, suodattamista ja vertaamista.
Tässä Geek School -versiossa tarkastelemme Pipelineen esineiden muotoilua, suodattamista ja vertaamista.

Muista lukea sarjan aiemmat artikkelit:

  • Opi käyttämään automaattista Windowsia PowerShellillä
  • Learning käyttämään Cmdlets PowerShellissä
  • Oppiminen esineiden käyttämisessä PowerShellissä

Ja pysy kuulolla koko sarjan koko viikon ajan.

Oletusmuotoilu

Kun aloin ensin PowerShellin kanssa, ajattelin, että kaikki on taikaa, mutta totuus on vain vähän aikaa ymmärtää, mitä tapahtuu huuvan alla. Sama koskee PowerShell-muotoilujärjestelmää. Itse asiassa, jos suoritat Get-Service-cmdletin, tuotettu tuotos näyttää vain kolme ominaisuutta: Tila, Nimi ja DisplayName.

Mutta jos saat Get-Service-palvelun Get-Memberille, näet, että ServiceController-objekti on paljon enemmän kuin vain nämä kolme ominaisuutta, joten mitä tapahtuu?
Mutta jos saat Get-Service-palvelun Get-Memberille, näet, että ServiceController-objekti on paljon enemmän kuin vain nämä kolme ominaisuutta, joten mitä tapahtuu?
Vastaus on piilotetussa tiedostossa, joka määrittää, kuinka useimmat sisäänrakennetusta cmdletistä näyttävät tuotoksensa. Jotta ymmärtäisit, kirjoita seuraava kuori ja paina enter.
Vastaus on piilotetussa tiedostossa, joka määrittää, kuinka useimmat sisäänrakennetusta cmdletistä näyttävät tuotoksensa. Jotta ymmärtäisit, kirjoita seuraava kuori ja paina enter.

notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml

Jos käytämme notepadin Find-toimintoa, voimme siirtyä nopeasti osioon, joka kertoo Get-Service-cmdlet-tuotoksen etsimällä ServiceController-tyypin.

Yhtäkkiä näet, että konepellin alla PowerShell muotoilee kaikki ServiceController-tyyppiset Pipeline-objektit ja luo taulukon, jossa on kolme saraketta: tila, nimi ja DisplayName. Mutta entä siinä, missä tyypissä sinulla ei ole mitään merkintää kyseisessä tiedostossa tai missä tahansa muussa tiedostomuodossa? No, se on varsin yksinkertaista. Jos putkesta tulevassa esineessä on 5 tai useampia ominaisuuksia, PowerShell näyttää luettelon kaikista objektin ominaisuuksista. jos sillä on alle 5 ominaisuutta, se näkyy taulukossa.
Yhtäkkiä näet, että konepellin alla PowerShell muotoilee kaikki ServiceController-tyyppiset Pipeline-objektit ja luo taulukon, jossa on kolme saraketta: tila, nimi ja DisplayName. Mutta entä siinä, missä tyypissä sinulla ei ole mitään merkintää kyseisessä tiedostossa tai missä tahansa muussa tiedostomuodossa? No, se on varsin yksinkertaista. Jos putkesta tulevassa esineessä on 5 tai useampia ominaisuuksia, PowerShell näyttää luettelon kaikista objektin ominaisuuksista. jos sillä on alle 5 ominaisuutta, se näkyy taulukossa.

Tietojen muotoilu

Jos et ole tyytyväinen objektin tai tyypin oletusmuotoiluun, voit rullata oman muotoilun. Sinun on tiedettävä kolme cmdletkiä.

  • Format-List
  • Muoto-Taulukko
  • Format-Wide
Image
Image

Format-Wide yksinkertaisesti kerää kokoelma esineitä ja näyttää kunkin objektin yhden ominaisuuden. Oletusarvoisesti se etsii nimen ominaisuutta; jos objektisi ei sisällä nimi-ominaisuutta, se käyttää objektin ensimmäistä ominaisuutta, kun ominaisuudet on lajiteltu aakkosjärjestykseen.

Get-Service | Format-Wide

Kuten näet, sen oletusasetus on myös kahdella sarakkeella, vaikka voit määrittää sekä haluamasi ominaisuuden ja kuinka monta saraketta haluat näyttää.
Kuten näet, sen oletusasetus on myös kahdella sarakkeella, vaikka voit määrittää sekä haluamasi ominaisuuden ja kuinka monta saraketta haluat näyttää.

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

Jos jotain on alustettu taulukkoon oletuksena, voit aina vaihtaa sen luettelonäkymään käyttämällä muotoilu-luettelo-cmdletä. Tutustu Get-Process-cmdletin tuotokseen.
Jos jotain on alustettu taulukkoon oletuksena, voit aina vaihtaa sen luettelonäkymään käyttämällä muotoilu-luettelo-cmdletä. Tutustu Get-Process-cmdletin tuotokseen.
Image
Image

Tämä taulukkoluku tosiasiallisesti sopii hyvin tällaiseen tietoon, mutta haluaa esittää, että haluamme tarkastella sitä luettelomuodossa. Meidän täytyy vain tehdä se Format-List.

Get-Process | Format-List

Kuten näet, vain neljä kohdetta näytetään oletusarvoisesti luettelossa. Voit tarkastella objektin kaikkia ominaisuuksia käyttämällä jokerimerkkiä.
Kuten näet, vain neljä kohdetta näytetään oletusarvoisesti luettelossa. Voit tarkastella objektin kaikkia ominaisuuksia käyttämällä jokerimerkkiä.

Get-Process | Format-List –Property *

Vaihtoehtoisesti voit valita vain haluamasi ominaisuudet.
Vaihtoehtoisesti voit valita vain haluamasi ominaisuudet.

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

Image
Image

Muoto-Taulukko, toisaalta ottaa tiedot ja muuttaa sen taulukkoon. Koska Get-Processin tiedot ovat jo taulukon muodossa, voimme käyttää sitä helposti valitsemaan ne kohteet, jotka haluamme näyttää taulukossa. Käytin AutoSize-parametria, jotta kaikki tiedot sopisivat yhteen näyttöön.

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

Image
Image

Suodatus ja vertailu

Yksi parhaista tavoista käyttää objektipohjaista putkistoa on se, että voit suodattaa esineitä putkesta missä tahansa vaiheessa Where-Object-cmdletin avulla.

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

Käytä missä kohde on todella yksinkertainen. $ edustaa nykyistä putkiobjektia, josta voit valita ominaisuuden, jonka haluat suodattaa. Tässä vain pitävät esineitä, joissa Tila-ominaisuus on Running. Muutamia vertailuoperaattoreita, joita voit käyttää suodatuskäsikirjoituslohkossa:
Käytä missä kohde on todella yksinkertainen. $ edustaa nykyistä putkiobjektia, josta voit valita ominaisuuden, jonka haluat suodattaa. Tässä vain pitävät esineitä, joissa Tila-ominaisuus on Running. Muutamia vertailuoperaattoreita, joita voit käyttää suodatuskäsikirjoituslohkossa:
  • eq (yhtäläinen)
  • neq (ei yhtäläinen)
  • gt (suurempi kuin)
  • ge (Greater Than tai Equal To)
  • lt (vähemmän kuin)
  • le (alle tai yhtä)
  • (Wildcard String Match)

Täydellinen luettelo ja lisätietoja löytyvät noin_comparison-käsitteellisestä ohjetiedostosta, mutta jos-Obeject-syntaksia käytetään jonkin aikaa. Se on kaikki tällä kertaa!

Suositeltava: