Husk å lese de forrige artiklene i serien:
- Lær hvordan du automatiserer Windows med PowerShell
- Lære å bruke Cmdlets i PowerShell
- Lære hvordan du bruker objekter i PowerShell
Og hold deg innstilt for resten av serien hele uken.
Standardformatering
Da jeg først startet med PowerShell, trodde jeg alt var magisk, men sannheten er at det bare tar litt tid å forstå hva som skjer under hetten. Det samme gjelder for formateringssystemet PowerShell. Faktisk, hvis du kjører Get-Service-cmdlet, viser produksjonen bare bare 3 egenskaper: Status, Navn og DisplayName.
notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml
Hvis vi bruker notisblokkens finnfunksjon, kan vi raskt hoppe over til avsnittet som beskriver utdataene fra Get-Service cmdlet ved å søke etter ServiceController-typen.
Formatering av dataene dine
Hvis du ikke er fornøyd med standardformatering av et objekt eller en type, kan du rulle din egen formatering. Det er tre cmdlets du trenger å vite for å gjøre dette.
- Format-List
- Format-Table
- Format-Wide
Format-Wide tar bare en samling objekter og viser en enkelt egenskap for hver gjenstand. Som standard vil det se etter en navnegenskap; Hvis objektene dine ikke inneholder en navnegenskap, vil den bruke objektets første egenskap når egenskapene er sortert alfabetisk.
Get-Service | Format-Wide
Get-Service | Format-Wide -Property DisplayName -Column 6
Denne tabellvisningen passer egentlig godt til denne typen informasjon, men la det virke som om vi vil se det i listeform. Alt vi virkelig trenger å gjøre er å rør det til Format-List.
Get-Process | Format-List
Get-Process | Format-List –Property *
Get-Process | Format-List –Property name,id
Format-Table, på den annen side tar data og gjør det til et bord. Siden våre data fra Get-Process allerede er i form av et bord, kan vi bruke det til å enkelt velge egenskaper vi vil vise i tabellen. Jeg brukte parameteren AutoSize for å få alle dataene til å passe på en enkelt skjerm.
Get-Process | Format-Table name,id –AutoSize
Filtrering og sammenligning
En av de beste tingene ved å bruke en objektbasert rørledning er at du kan filtrere objekter ut av rørledningen på et hvilket som helst tidspunkt ved hjelp av cmdlet der objektet er.
Get-Service | Where-Object {$_.Status -eq “Running”}
- eq (lik til)
- neq (ikke lik til)
- gt (større enn)
- ge (større enn eller lik til)
- lt (mindre enn)
- le (mindre enn eller lik til)
- som (Wildcard String Match)
En fullstendig liste og mer informasjon kan sees i konjunkturhjelpfilen about_comparison, men det tar litt tid å bli vant til Syntaxen der det er feil. Det er alt for denne gangen!