Būtinai perskaitykite ankstesnius serijos straipsnius:
- Sužinokite, kaip automatizuoti "Windows" su "PowerShell"
- Mokytis naudotis "PowerShell" kompiliacijomis
- Mokymasis naudoti objektus PowerShell
Ir visada sekite visą seriją likusiai savaitę.
Numatytasis formatavimas
Kai aš pirmą kartą pradėjau veikti su "PowerShell", maniau, kad viskas yra magija, bet tiesa, tai tik trunka šiek tiek laiko suprasti, kas vyksta po gaubtu. Tas pats pasakytina apie "PowerShell" formatavimo sistemą. Iš tikrųjų, jei paleidžiate "Get-Service" cmdlet, generuota produkcija rodo tik 3 savybes: būseną, pavadinimą ir "DisplayName".
notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml
Jei naudosime funkciją "Notepad" Find, mes galime greitai pereiti į skyrių, kuriame išsamiai aprašoma "Get-Service" cmdlet išvestis, ieškodami "ServiceController" tipo.
Jūsų duomenų formatavimas
Jei nesate patenkintas numatytu objekto ar tipo formatu, galite pakartoti savo formatavimą. Tam reikia tris cmdlet, kurias reikia žinoti.
- Formatinis sąrašas
- Formato lentelė
- Formatas-Wide
Formatas-Wide tiesiog surenka objektų rinkinį ir parodo kiekvieno objekto vieną nuosavybę. Pagal nutylėjimą jis ieškos vardo nuosavybės; jei jūsų objektuose nėra vardo nuosavybės, jis naudos pirmąją objekto nuosavybę, kai savybės bus rūšiuojamos abėcėlės tvarka.
Get-Service | Format-Wide
Get-Service | Format-Wide -Property DisplayName -Column 6
Šis lentelės vaizdas iš tikrųjų tinka šiai informacijai labai gerai, bet mes darome prielaidą, kad norime jį peržiūrėti sąrašo formoje. Viskas, ką turime tikrai padaryti, tai vamzdis Formatinis sąrašas.
Get-Process | Format-List
Get-Process | Format-List –Property *
Get-Process | Format-List –Property name,id
Formato lentelė kita vertus, perima duomenis ir paverčia jį į lentelę. Kadangi mūsų duomenys iš "Get-Process" jau yra lentelės pavidalu, mes galime jį naudoti norėdami lengvai pasirinkti norimus rodinius lentelėje. Aš naudoju parametrą AutoSize, kad visi duomenys būtų tinkami vienam ekranui.
Get-Process | Format-Table name,id –AutoSize
Filtravimas ir palyginimas
Vienas geriausių dalykų, susijusių su objektyvais vamzdynais, yra tai, kad jūs bet kuriuo etapu galite filtruoti objektus iš dujotiekio naudodami "Where-Object" cmdlet.
Get-Service | Where-Object {$_.Status -eq “Running”}
- eq (lygus)
- neq (ne lygus)
- gt (didesnis nei)
- ge (didesnis nei lygus arba didesnis)
- lt (mažiau nei)
- Le (mažiau nei lygi)
- panašūs ("Wildcard String Match")
Išsamų sąrašą ir daugiau informacijos galima rasti schemos "about_comparison" koncepcijos pagalbos byloje, tačiau tai prireikia šiek tiek laiko priprasti prie "Where-Obeject" sintaksės. Tai visa tai šiuo metu!