19Aug
V tej izdaji Geek šole gledamo na oblikovanje, filtriranje in primerjanje predmetov v Pipeline.
Prosimo, da preberete prejšnje članke v seriji:
- Več o tem, kako avtomatizirati Windows z PowerShellom
- Učenje za uporabo Cmdlets v PowerShellu
- Učenje Kako uporabljati predmete v PowerShellu
In ostanite nastavljeni za preostanek serije ves teden.
Privzeto Formatiranje
Ko sem prvič začel z PowerShell-om, sem mislil, da je vse čarobno, res pa je, da potrebuje nekaj časa, da razume, kaj se dogaja pod pokrovom. Enako velja za formatni sistem PowerShell. Dejansko, če zaženete programsko opremo cmdlet Get-Service, ustvarjeni izhod prikazuje samo tri lastnosti: stanje, ime in ime prikaza.
Ampak, če vnesete Get-Service v Get-Member, vidite, da imajo predmeti ServiceController veliko več kot samo tri te lastnosti, kaj se dogaja?
Odgovor je v skriti datoteki, ki določa, kako večina vgrajenih ukaznih vrstic prikazuje svoj izhod.Če želite razumeti, vnesite naslednje v lupino in pritisnite enter.
beležnica C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ DotNetTypes.format.ps1xml
Če uporabljamo funkcijo beležke Notepad, lahko hitro preskočimo v odsek, ki podrobno prikazuje izhodni ukaz cmdleta Get-Service, tako da iščete ServiceControllertip.
Naenkrat lahko vidite, da pod pokrovom PowerShell oblikuje vse predmete v Pipeline, ki so vrste ServiceController, in ustvariti tabelo s tremi stolpci: Status, Ime in DisplayName. Toda kaj, če tip, s katerim se ukvarjate, nima vnosa v tej datoteki ali kakšni drugi obliki datoteke za to zadevo? No, potem je precej preprosta.Če ima objekt, ki prihaja iz cevovoda, 5 ali več lastnosti, PowerShell prikaže vse lastnosti predmeta na seznamu;če ima manj kot 5 lastnosti, jih prikaže v tabeli.
Oblikovanje podatkov
Če niste zadovoljni s privzeto oblikovanjem predmeta ali vrste, lahko oblikujete svoje oblikovanje. Za to morate vedeti tri cmdlete.
- Format-List
- Format-tabela
- Format-širok format
Format-širok preprosto vzame zbirko predmetov in prikaže eno lastnost vsakega predmeta. Privzeto bo poiskal lastnost imena;če vaši predmeti ne vsebujejo lastnosti imena, bo uporabil prvo lastnost predmeta, ko bodo lastnosti sortirane po abecedi.
Get-Service |Format-Wide
Kot lahko vidite, je privzeto tudi na dva stolpca, čeprav lahko določite, katero lastnost želite uporabiti, in koliko stolpcev želite prikazati.
Get-Service |Format-Wide -Property DisplayName-Column 6
Če je nekaj privzeto oblikovano kot tabelo, jo lahko kadar koli preklopite v pogled seznama z uporabo cmdleta s seznama formatov. Oglejmo si si izhod iz cmdleta Get-Process.
Ta tabelarni pogled zelo ustreza tovrstnim informacijam, vendar se pretvarjamo, da ga želimo ogledati v obliki seznama. Vse, kar res moramo storiti, je, da ga vstavite v Format-List .
Get-Process |Format-List
Kot vidite, so na seznamu privzeto prikazani samo štirje elementi.Če si želite ogledati vse lastnosti predmeta, lahko uporabite nadomestni znak.
Get-Process |Format-List -Property *
Alternativno lahko izberete samo želene lastnosti.
Get-Process |Format-List-Ime ime, id
Tabela formatov, na drugi strani, vzame podatke in ga spremeni v tabelo. Ker so naši podatki iz procesa Get-Process že v obliki tabele, jo lahko uporabimo za preprosto izbiro lastnosti, ki jih želimo prikazati v tabeli. Uporabil sem parameter AutoSize, da bi se vsi podatki prilagodili na en sam zaslon.
Get-Process |Ime formatne tabele, id -AutoSize
Filtriranje in primerjava
Ena izmed najboljših stvari pri uporabi objektovskega plinovoda je, da lahko predmete filtrirate iz kateregakoli faza z ukazom cmdlet Where-Object.
Get-Service |Kje-predmet{ $ _. Status-eq "Running"}
Uporaba predmeta je dejansko zelo preprosta.$ _ predstavlja trenutni objekt plinovoda, iz katerega lahko izberete lastnost, ki jo želite filtrirati. Tu so bili samo ohranjanje objektov, kjer je lastnost Status enaka Running. Obstaja nekaj operaterjev za primerjavo, ki jih lahko uporabite v blokah za filtriranje:
- eq( Equal To)
- neq( ni enako)
- gt( večje)
- ge( večje ali enako)
- lt( manj kot)
- le( manj kot enako ali enako)
- všeč( drsna vrsta ujemanja)
Celoten seznam in več informacij si lahko ogledate v primerjavi s konceptualno datoteko pomoči približno, vendar se sčasoma uporabi za sintakso Where-Obeject. To je vse za ta čas!