Sådan tælles objekter i PowerShell
Der er så mange grunde til, at du måske ønsker at tælle objekter i PowerShell. Som et eksempel vil du måske tælle fejlmeddelelser i en hændelseslog.
Desuden vil du måske tælle antallet af filer i en bestemt mappe.
Uanset hvad du skal tælle i PowerShell, kan du bruge enten Tælle Operatør eller den Mål-objekt Cmdlet. Denne guide lærer dig forskellige eksempler for at demonstrere, hvordan du tæller med begge metoder.
Vejledningen er opdelt i to afsnit. I det første afsnit lærer du, hvordan du bruger Tælle Operatør med 8 forskellige eksempler.
Til sidst, i det andet afsnit, vil jeg lære dig, hvordan du tæller med Mål-objekt Cmdlet.
Gennemse indlægsemner
- Sådan tælles i PowerShell med tælleoperatøren
- Syntaks for PowerShell Count Operator
- Sådan bruges PowerShell Count Operator til at tælle hændelseslogfiler
- Sådan bruges PowerShell Count Operator til at tælle filer i en mappe
- Sådan bruges PowerShell Count Operator til at tælle filer i en mappe efter dato
- Sådan bruges PowerShell Count Operator til at tælle objekter i et array
- Sådan tælles i PowerShell med Measure-Object Cmdlet
- Syntaks for Measure-Object Cmdlet
- Sådan bruges Measure-Object Cmdlet til at tælle tegn i en streng
- Sådan tælles en bestemt karakter i en streng
- Sådan bruges PowerShell Measure-Object til at tælle antallet af linjer i en tekstfil
- Sådan bruges PowerShell Measure-Object Cmdlet til at tælle linjer i en CSV-fil
- Sådan bruger du PowerShell Measure-Object Cmdlet til at tælle forekomster af streng i en fil
- Referencer og videre læsning
Sådan tæller du i PowerShell med Tælle Operatør
Som allerede nævnt i indledningen vil jeg i dette første afsnit lære dig, hvordan du tæller med Tælle Operatør . Afsnittet starter med syntaksen for Tælle Operatør .
Derefter deler jeg otte eksempler på forskellige måder, du kan regne med Tælle Operatør .
Syntaks for PowerShell Tælle Operatør
Syntaksen for PowerShell Tælle Operatør er:
|_+_|PowerShell Tælle Operatør af et objekt kan tilgås ved at pakke objektet ind i en parentes (). Tilføj derefter et punktum (.), efterfulgt af ordet, tælle .
Sådan bruges PowerShell Tælle Operatør At tælle hændelseslogfiler
Det første applikationseksempel er at vise dig, hvordan du tæller hændelseslogfiler.
I dette eksempel vil jeg tælle antallet af fejlmeddelelser i System logge på de sidste 24 timer. Jeg kunne køre en enkelt kommando, men for at gøre det let at forstå, vil jeg nedbryde det.
Det første trin er at gemme de sidste 24 timer i en variabel ved at bruge Get-Date kommando.
Her er kommandoen...
|_+_|Indtast kommandoen i PowerShell, og tryk på enter-tasten for at køre den.
Kør derefter Hent-EventLog kommando, rør outputtet til Hvor-objekt kommando, og filtrer efter Fejl. Gem resultatet af kommandoen i en variabel kaldet $ErrorLogCount .
|_+_|Hvis du ønsker at se en liste over fejlmeddelelserne, skal du køre variablen $ErrorLogCount.
|_+_|Her er kommandoerne i PowerShell...
Bemærk at der er 5 fejllogfiler. Dette er nemt at tælle – men hvis resultatet havde hundredvis af resultater, hvordan tæller du dem så?
Brug PowerShell Tælle Operatør ! Her er den sidste kommando, der tæller antallet af fejllogfiler i resultatet af den sidste kommando...
|_+_|Og som forventet er resultatet 5!
Hvis du vil køre kommandoerne i en enkelt kommando, her er kommandoen...
|_+_|Resultatet er det samme...
Sådan bruges PowerShell Tælle Operatør til at tælle filer i en mappe
En anden applikation af PowerShell Tælle Metoden er at tælle antallet af filer i en mappe. I dette afsnit lærer du, hvordan du tæller filer i en mappe.
Du vil også tjene, hvordan du tæller filer i en mappe og alle undermapper. Til sidst vil jeg lære dig, hvordan du bruger PowerShell Tælle Metode til at tælle filer efter dato.
Det første skridt til at tælle filer i en mappe er at bruge Get-ChildItem kommando for at returnere filerne i en mappe. I dette eksempel vil jeg gemme resultatet af Get-ChildItem kommando i en variabel kaldet filliste .
|_+_|I den anden del af kommandoen sendte jeg outputtet fra Get-ChildItem kommando til Hvor-objekt . Det Hvor-objekt kommandoen har ! foran $_.PSIsContainer – dette fortæller Hvor-objekt for at returnere alle objekter undtagen mapper.
Her er kommandoen i PowerShell. For at vise resultaterne gemt i variablen kørte jeg variablen...
avast bruger op disk
Til sidst, for at tælle antallet af filer, skal du pakke resultatet ind i PowerShell Tælle Operatør .
|_+_|Resultatet viser, at der er 37 filer.
Fortsæt, hvad nu hvis vi vil tælle filer i mappen og alle undermapper? Dette kræver blot at tilføje Genfald parameter til Get-ChildItem lidt af kommandoen.
Her er den ændrede kommando, der tæller filer i en mappe og alle dens undermapper. Denne gang kørte jeg kommandoen som en enkelt kommando.
|_+_|Her er resultatet med 40 filer.
Sådan bruges PowerShell Tælle Operatør til at tælle filer i en mappe efter dato
I det sidste afsnit viste jeg dig, hvordan du tæller alle filer i en mappe og undermapper.
I dette afsnit vil jeg vise dig, hvordan du tæller antallet af filer i en mappe baseret på dato.
For at hjælpe dig med at forstå dette eksempel, kør denne kommando fra vores tidligere eksempel.
|_+_|Kør nu variablen. Resultatet viser, at filerne har en egenskab kaldet LastWriteTime .
Det LastWriteTime egenskab angiver sidste gang filen blev oprettet eller opdateret. Implikationen er, at vi kan inkludere denne ejendom i Hvor-objekt filter – returner derefter kun filer, der blev opdateret eller oprettet på en bestemt dato.
kan ikke oprette forbindelse til dampnetværket
I dette eksempel vil jeg kun tælle filer, der er opdateret eller oprettet inden for de sidste 24 timer. Så jeg skal bruge et datofilter.
For at generere datofilteret skal du køre kommandoen nedenfor og gemme resultatet i en variabel...
|_+_|Brug derefter variablen, $Sidste 24 timer som et ekstra filter i Hvor-objekt siden af den forrige kommando. Her er den opdaterede kommando.
|_+_|Kommandoen introducerer et nyt filter $_.LastWriteTime -ge $Last24Hours. Dette sammenligner LastWriteTime egenskab for hver fil med datoen gemt i $Sidste 24 timer variabel.
Derefter enhver fil med LastWriteTime større end eller lig med (ge) datoen i variablen (sidste 24 timer), vil den blive returneret i resultatet. Dog enhver fil med LastWriteTime der falder uden for dette område fjernes.
Hvor fantastisk!
Kommandoen returnerede kun 3 filer!
Til sidst, for at tælle filerne i denne mappe og alle dens undermapper, der blev oprettet eller opdateret inden for de seneste 24 timer, skal du bruge PowerShell Tælle Operatør kommando nedenfor:
|_+_|Her er resultatet i PowerShell...
Sådan bruges PowerShell Tælle Operatør til at tælle objekter i en matrix
For nylig opdaterede jeg vores PowerShell Arrays-artikel. I den seneste opdatering af artiklen oprettede jeg et array.
Her er scriptet, der opretter et array, gemt i en variabel, ArrayList .
|_+_|PowerShell Array har en Tælle Ejendom . Du kan bruge denne egenskab, som vi har brugt den i tidligere eksempler i denne artikel.
Derfor, for at tælle objekterne i PowerShell-arrayet, der er gemt i ArrayList variabel, kør kommandoen nedenfor...
|_+_|Resultatet er 3 – hvilket bekræfter antallet af objekter i vores array!
Sådan tælles i PowerShell med Measure-Object Cmdlet
I det sidste afsnit af denne vejledning så du forskellige måder at bruge PowerShell på Tælle Operatør at tælle genstande. Dette afsnit lærer dig, hvordan du tæller objekter med Mål-objekt Cmdlet.
Som du vil se i eksemplerne i dette afsnit, er Mål-objekt Cmdlet tilbyder flere muligheder for at tælle objekter.
Før eksemplerne, lad os dog starte med syntaksen for Mål-objekt Cmdlet.
Syntaks for Measure-Object Cmdlet
For at se den fulde syntaks for Mål-objekt Cmdlet, kør kommandoen nedenfor:
|_+_|Fra resultatet af kommandoen Mål-objekt Cmdlet har to syntakser. Her er de forenklede versioner af syntakserne:
|_+_| |_+_|Du kan bruge den første syntaks til at returnere gennemsnits-, min- og maksværdier for objekter. Men hvis du vil tælle antallet af tegn, skal du fjerne mellemrum, tælle linjer eller ord, brug den anden syntaks.
I de følgende underafsnit vil jeg diskutere forskellige eksempler på, hvordan man bruger Mål-objekt at tælle objekter i PowerShell.
Sådan bruges Measure-Object Cmdlet til at tælle tegn i en streng
De fleste gange skal SysAdmins tælle det samlede antal elementer i en streng eller PowerShell-objekt. Men i sjældne tilfælde kan SysAdmins støde på automatiske PowerShell-opgaver, der kræver mere detaljeret optælling.
For eksempel kan du blive bedt om at tælle antallet af tegn i en streng. I dette eksempel vil jeg lære dig, hvordan du tæller det samlede antal tegn i en streng.
For at være klar, er et tegn et enkelt objekt som f.eks. 1 eller a.
Lad os starte med et meget simpelt eksempel for at tælle antallet af tegn i denne række af tal
|_+_|Det er klart, at der er seks karakterer, men hvordan tæller vi karaktererne med PowerShell? Det enkle svar er at røre resultatet til Mål-objekt kommando og angiv Karakter parameter.
Her er kommandoen...
|_+_|En anden måde at køre kommandoen på er at specificere strengen, 123456 med InputObject-variablen i stedet for at røre den...
|_+_|Begge kommandoer giver det samme resultat, 6!
Sådan tælles en bestemt karakter i en streng
For et mere avanceret eksempel – hvad nu hvis du vil tælle antallet af et bestemt tegn i en streng?
Lad os f.eks. sige, at du vil tælle antallet af gange, tallet 2 forekommer i denne streng:
|_+_|Det første trin er at konvertere strengen til et Unicode-tegnarray. For at opnå dette skal du bruge ToCharArray Metode .
Her er kommandoen...
|_+_|Hvad kommandoen gør, er at nedbryde strengen i medlemmer af et PowerShell Array. Her er resultatet…
Nu hvor du har konverteret strengen til et array, er næste trin at røre den til Hvor-objekt . Derefter i Hvor-objekt filterblok, brug $_ automatisk variabel for at returnere de tegn, du vil tælle.
I dette eksempel ønsker vi at tælle alle forekomster af 2. Dette er kommandoen, der udfører dette job...
|_+_|Kommandoen returnerer kun de tegn, vi ønsker at tælle.
Send til sidst den sidste kommando til Mål-objekt .
|_+_|Det endelige resultat fortæller os, at tegnet 2 optrådte 3 gange i den originale streng, 123456225.
Som du kan se fra den sidste kommando, har resultatet en masse andre oplysninger. Det inkluderer også ordet Count.
Hvad hvis du vil vise antallet af tegn uden disse andre irrelevante oplysninger?
Du skal blot indsætte den gennemtrængende kommando i en () parentes, efterfulgt af et punktum (.). Tilføj endelig ordet Tælle .
Tælle er den egenskab, der er fremhævet på det sidste skærmbillede. Det er den samme PowerShell Tælle Ejendom vi har diskuteret i denne guide.
|_+_|Værsgo, let-peasy!
Sådan bruges PowerShell Measure-Object til at tælle antallet af linjer i en tekstfil
Eksemplerne i dette afsnit bliver spændende!
I dette underafsnit vil jeg opgradere spillet lidt. Jeg vil gerne vise dig, hvordan du tæller antallet af linjer i en tekstfil.
Lad os sige, at du vil tælle antallet af linjer i tekstfilen vist i dette skærmbillede ...
Det første skridt er at bruge Hent-indhold kommando for at returnere indholdet af filen. Rør derefter udgangen til Mål-objekt og angiv Linje parameter.
Her er den sidste kommando...
|_+_|Og her er resultatet ... 4 linjer i tekstfilen ...
Alternativt, hvis du vil tælle antallet af ord i tekstfilen, skal du erstatte Linje parameter med Ord .
|_+_|Tilfældigvis er der også 4 ord.
Sådan bruges PowerShell Measure-Object Cmdlet til at tælle linjer i en CSV-fil
I dette næste eksempel vil jeg tælle antallet af linjer i denne CSV-fil. Som du kan se, er der 15 linjer.
Fremgangsmåden svarer til at tælle antallet af linjer i en tekstfil. Det er dog mindre kompliceret.
For at tælle antallet af linjer i CSV-filen ovenfor, skal du først bruge Import-Csv kommando for at vise indholdet af CSV-filen. Derefter rør outputtet af Import-Csv kommando til Mål-objekt .
Her er den sidste kommando...
|_+_|Og resultatet…
Endnu en gang, hvis du kun vil vise antallet af linjer, skal du køre kommandoen nedenfor...
|_+_|
Sådan bruger du PowerShell Measure-Object Cmdlet til at tælle forekomster af streng i en fil
Dette er endnu et spændende PowerShell Count-eksempel! I dette afsnit vil jeg tælle antallet af forekomster af ordet Bytes i tekstfilen i dette skærmbillede...
Som jeg allerede har vist i et tidligere eksempel, er det første skridt at bruge Hent-indhold kommando for at vise indholdet af tekstfilen.
|_+_|Rør derefter resultatet til Hvor-objekt og filtrer efter navnet på de ord, jeg vil tælle...
|_+_|Send til sidst resultatet af den sidste kommando til Mål-objekt .
hvad phoenix rock knuser|_+_|
For kun at vise resultatet skal du ændre kommandoen som vist nedenfor.
|_+_|Resultatet er 3.
Det er det, vores opdaterede PowerShell-optællingsartikel! Jeg håber, du fandt det nyttigt.
Hvis du fandt denne artikel nyttig, så stem venligst Ja til spørgsmålet Var dette indlæg nyttigt nedenfor.
Alternativt kan du stille et spørgsmål, efterlade en kommentar eller give mere feedback med formularen Efterlad et svar, som findes i slutningen af denne side.
Endelig, for flere PowerShell tech S Zones, besøg vores Windows PowerShell How-To guide-side. Du kan også finde vores Work from Home-side meget nyttig.
Referencer og videre læsning
- Mål-objekt
- Om metoder
- 18 mest nyttige Powershell-kommandoer til Windows-administratorer
- Sådan udtrækkes en Powershell-understreng fra en streng


