Hur man räknar objekt i PowerShell

28 maj 2021 37667 Visningar powershell-antal

Det finns så många anledningar till att du kanske vill räkna objekt i PowerShell. Som ett exempel kanske du vill räkna felmeddelanden i en händelselogg.





Dessutom kanske du vill räkna antalet filer i en specifik mapp.



Vad du än behöver räkna i PowerShell kan du använda antingen Räkna Operatör eller den Mått-Objekt Cmdlet. Den här guiden lär dig olika exempel för att visa hur du räknar med båda metoderna.

Guiden är uppdelad i två avsnitt. I det första avsnittet kommer du att lära dig hur du använder Räkna Operatör med 8 olika exempel.



Slutligen, i det andra avsnittet, kommer jag att lära dig hur du räknar med Mått-Objekt Cmdlet.



Bläddra bland inläggsämnen

Hur man räknar i PowerShell med Räkna Operatör

Som redan nämnts i inledningen, i detta första avsnitt, kommer jag att lära dig hur du räknar med Räkna Operatör . Avsnittet börjar med syntaxen för Räkna Operatör .



windows kunde inte automatiskt binda ip-protokollstacken till nätverket

Sedan delar jag åtta exempel på olika sätt du kan räkna med Räkna Operatör .



Syntax för PowerShell Räkna Operatör

Syntaxen för PowerShell Räkna Operatör är:

|_+_|

PowerShell Räkna Operatör av ett objekt kan nås genom att linda in objektet i en parentes (). Lägg sedan till en punkt (.), följt av ordet, räkna .

Hur man använder PowerShell Räkna Operatör Att räkna händelseloggar

Det första applikationsexemplet är att visa dig hur man räknar händelseloggar.

I det här exemplet vill jag räkna antalet felmeddelanden i Systemet logga in de senaste 24 timmarna. Jag skulle kunna köra ett enda kommando men för att göra det lätt att förstå, kommer jag att bryta ner det.

Det första steget är att spara de senaste 24 timmarna i en variabel med hjälp av Get-Date kommando.

Här är kommandot...

|_+_|

Ange kommandot i PowerShell och tryck på enter-tangenten för att köra det.

Hur man använder PowerShell Count Method för att räkna händelseloggar

Kör sedan Get-EventLog kommandot, pipe output till Var-Objekt kommando och filtrera efter fel. Spara resultatet av kommandot i en variabel som kallas $ErrorLogCount .

|_+_|

Om du vill se en lista över felmeddelanden, kör variabeln $ErrorLogCount.

|_+_|

Här är kommandona i PowerShell...

Observera att det finns 5 felloggar. Detta är lätt att räkna – men om resultatet hade hundratals resultat, hur räknar du dem?

Använd PowerShell Räkna Operatör ! Här är det sista kommandot som räknar antalet felloggar i resultatet av det sista kommandot...

|_+_|

Och som väntat är resultatet 5!

Hur man använder PowerShell Count Method för att räkna händelseloggar

Om du vill köra kommandona i ett enda kommando, här är kommandot ...

|_+_|

Resultatet är detsamma...

Hur man använder PowerShell Räkna Operatör för att räkna filer i en mapp

En annan tillämpning av PowerShell Räkna Metoden är att räkna antalet filer i en mapp. I det här avsnittet kommer du att lära dig hur du räknar filer i en mapp.

Du kommer också att tjäna hur man räknar filer i en mapp och alla undermappar. Slutligen kommer jag att lära dig hur du använder PowerShell Räkna Metod för att räkna filer efter datum.

Det första steget för att räkna filer i en mapp är att använda Get-ChildItem kommandot för att returnera filerna i en mapp. I det här exemplet kommer jag att spara resultatet av Get-ChildItem kommando i en variabel som kallas fillista .

|_+_|

I den andra delen av kommandot skickade jag utdata från Get-ChildItem kommando till Var-Objekt . De Var-Objekt kommandot har ! framför $_.PSIsContainer – detta berättar Var-Objekt för att returnera alla objekt utom mappar.

Här är kommandot i PowerShell. För att visa resultaten sparade i variabeln, körde jag variabeln...

Hur man använder PowerShell Count Method för att räkna filer i en mapp

Slutligen, för att räkna antalet filer, slå in resultatet i PowerShell Räkna Operatör .

|_+_|

Resultatet visar att det finns 37 filer.

Går vi vidare, vad händer om vi vill räkna filer i mappen och alla undermappar? Detta kräver helt enkelt att lägga till Återfall parameter till Get-ChildItem bit av kommandot.

Här är det ändrade kommandot som räknar filer i en mapp och alla dess undermappar. Den här gången körde jag kommandot som ett enda kommando.

|_+_|

Här är resultatet med 40 filer.

Hur man använder PowerShell Count Method för att räkna filer i en mapp

Hur man använder PowerShell Räkna Operatör att räkna filer i en mapp efter datum

I det sista avsnittet visade jag dig hur du räknar alla filer i en mapp och undermappar.

I det här avsnittet kommer jag att visa dig hur du räknar antalet filer i en mapp baserat på datum.

För att hjälpa dig förstå detta exempel, kör det här kommandot från vårt tidigare exempel.

kodi installera på smart tv
|_+_|

Kör nu variabeln. Resultatet visar att filerna har en egenskap som kallas LastWriteTime .

De LastWriteTime egenskap anger när filen senast skapades eller uppdaterades. Innebörden är att vi kan inkludera denna egenskap i Var-Objekt filter – returnerar sedan endast filer som har uppdaterats eller skapats på ett angivet datum.

I det här exemplet vill jag bara räkna filer som har uppdaterats eller skapats under de senaste 24 timmarna. Så jag behöver ett datumfilter.

För att generera datumfiltret, kör kommandot nedan och spara resultatet i en variabel...

|_+_|

Använd sedan variabeln, $Last24Hours som ett extra filter i Var-Objekt sidan av föregående kommando. Här är det uppdaterade kommandot.

|_+_|

Kommandot introducerar ett nytt filter $_.LastWriteTime -ge $Last24Hours. Detta jämför LastWriteTime egenskapen för varje fil med datumet sparat i $Last24Hours variabel.

Sedan, vilken fil som helst med LastWriteTime större än eller lika med (ge) datumet i variabeln (senaste 24 timmarna), kommer det att returneras i resultatet. Men vilken fil som helst med LastWriteTime som faller utanför detta intervall tas bort.

Så fantastiskt!

Kommandot returnerade bara 3 filer!

Slutligen, för att räkna filerna i den här mappen och alla dess undermappar som har skapats eller uppdaterats under de senaste 24 timmarna, använd PowerShell Räkna Operatör kommandot nedan:

|_+_|

Här är resultatet i PowerShell...

Hur man använder PowerShell Räkna Operatör Att Räkna Objekt I En Array

Nyligen uppdaterade jag vår PowerShell Arrays-artikel. I den senaste uppdateringen av artikeln skapade jag en array.

Här är skriptet som skapar en array, sparad i en variabel, ArrayList .

|_+_|

PowerShell Array har en Räkna Fast egendom . Du kan använda den här egenskapen som vi har använt den i tidigare exempel i den här artikeln.

Därför, för att räkna objekten i PowerShell-arrayen sparade i ArrayList variabel, kör kommandot nedan...

|_+_|

Resultatet är 3 – vilket bekräftar antalet objekt i vår array!

Hur man använder PowerShell Count Operator för att räkna objekt i en array

Hur man räknar i PowerShell med Measure-Object Cmdlet

Hur man räknar i PowerShell med Measure-Object Cmdlet

I det sista avsnittet av den här guiden såg du olika sätt att använda PowerShell Räkna Operatör att räkna föremål. Det här avsnittet lär dig hur du räknar objekt med Mått-Objekt Cmdlet.

Som du skulle se i exemplen i det här avsnittet, Mått-Objekt Cmdlet erbjuder fler alternativ för att räkna objekt.

Men innan exemplen, låt oss börja med syntaxen för Mått-Objekt Cmdlet.

Syntax för Measure-Object Cmdlet

För att se hela syntaxen för Mått-Objekt Cmdlet, kör kommandot nedan:

|_+_|

Från resultatet av kommandot, den Mått-Objekt Cmdlet har två syntaxer. Här är de förenklade versionerna av syntaxerna:

|_+_| |_+_|

Du kan använda den första syntaxen för att returnera medelvärden, min och maxvärden för objekt. Men om du vill räkna antalet tecken, ta bort blanksteg, räkna rader eller ord, använd den andra syntaxen.

I följande underavsnitt kommer jag att diskutera olika exempel på hur man använder Mått-Objekt för att räkna objekt i PowerShell.

Hur man använder Measure-Object Cmdlet för att räkna tecken i en sträng

De flesta gånger kommer SysAdmins behöva räkna totalt antal objekt i en sträng eller ett PowerShell-objekt. Men i sällsynta fall kan SysAdmins stöta på automatiska PowerShell-uppgifter som kräver mer detaljerad räkning.

Till exempel kan du behöva räkna antalet tecken i en sträng. I det här exemplet kommer jag att lära dig hur man räknar det totala antalet tecken i en sträng.

För att vara tydlig är en karaktär ett enda objekt som 1 eller a.

Låt oss börja med ett mycket enkelt exempel, för att räkna antalet tecken i denna sträng av siffror

Amazon Fire Stick Stream från PC
|_+_|

Självklart finns det sex karaktärer men hur räknar vi karaktärerna med PowerShell? Det enkla svaret är att skicka resultatet till Mått-Objekt kommandot och ange Karaktär parameter.

Här är kommandot...

|_+_|

Ett annat sätt att köra kommandot är att specificera strängen, 123456 med variabeln InputObject istället för att skicka den...

|_+_|

Båda kommandona ger samma resultat, 6!

Hur man räknar i PowerShell med Measure-Object Cmdlet: Hur man använder Measure-Object Cmdlet för att räkna tecken i en sträng

Hur man räknar en specifik karaktär i en sträng

Nu, för ett mer avancerat exempel – vad händer om du vill räkna numret på ett specifikt tecken i en sträng?

Låt oss till exempel säga att du vill räkna antalet gånger som siffran 2 förekommer i den här strängen:

showbox-serverfel idag
|_+_|

Det första steget är att konvertera strängen till en Unicode-teckenuppsättning. För att uppnå detta, använd ToCharArray Metod .

Här är kommandot...

|_+_|

Vad kommandot gör är att dela upp strängen i medlemmar av en PowerShell Array. Här är resultatet...

Nu när du har konverterat strängen till en array är nästa steg att röra den till Var-Objekt . Sedan, i Var-Objekt filterblock, använd $_ automatisk variabel för att returnera de tecken du vill räkna.

I det här exemplet vill vi räkna alla förekomster av 2. Det här är kommandot som gör det här jobbet...

|_+_|

Kommandot returnerar endast de tecken vi vill räkna.

Hur man räknar i PowerShell med Measure-Object Cmdlet: Hur man använder Measure-Object Cmdlet för att räkna specifika tecken i en sträng

Slutligen skickar du det sista kommandot till Mått-Objekt .

|_+_|

Det slutliga resultatet berättar att tecknet 2 förekom 3 gånger i den ursprungliga strängen, 123456225.

Som du kan se från det sista kommandot har resultatet en massa annan information. Det innehåller också ordet Count.

Vad händer om du vill visa antalet tecken utan denna andra irrelevanta information?

Skriv helt enkelt det föregående kommandot inom en () parentes, följt av en punkt (.). Till sist, lägg till ordet Räkna .

Räkna är egenskapen markerad i den sista skärmdumpen. Det är samma PowerShell Räkna Fast egendom vi har diskuterat i den här guiden.

|_+_|

Varsågod, lättsam!

Hur man räknar i PowerShell med Measure-Object Cmdlet: Hur man använder Measure-Object Cmdlet för att räkna specifika tecken i en sträng

Hur man använder PowerShell Measure-Object för att räkna antalet rader i en textfil

Exemplen i det här avsnittet börjar bli spännande!

I det här underavsnittet vill jag förbättra spelet lite. Jag vill visa dig hur man räknar antalet rader i en textfil.

Låt oss säga att du vill räkna antalet rader i textfilen som visas i den här skärmdumpen...

Det första steget är att använda Get-Content kommando för att returnera innehållet i filen. Led sedan utgången till Mått-Objekt och specificera Linje parameter.

Här är det sista kommandot...

|_+_|

Och här är resultatet...4 rader i textfilen...

Hur man använder PowerShell Measure-Object för att räkna antalet rader i en textfil

Alternativt, om du vill räkna antalet ord i textfilen, byt ut Linje parameter med Ord .

|_+_|

Av en slump finns det också 4 ord.

Hur man använder PowerShell Measure-Object Cmdlet för att räkna rader i en CSV-fil

I nästa exempel vill jag räkna antalet rader i denna CSV-fil. Som du kan se finns det 15 rader.

Hur man använder PowerShell Measure-Object Cmdlet för att räkna rader i en CSV-fil

Tillvägagångssättet liknar att räkna antalet rader i en textfil. Det är dock mindre komplicerat.

För att räkna antalet rader i CSV-filen ovan, använd först Import-Csv kommando för att lista innehållet i CSV-filen. Rör sedan utgången från Import-Csv kommando till Mått-Objekt .

Här är det sista kommandot...

|_+_|

Och resultatet...

Återigen, om du bara vill visa antalet rader, kör kommandot nedan...

|_+_|

Hur man använder PowerShell Measure-Object Cmdlet för att räkna förekomster av strängar i en fil

Detta är ännu ett spännande PowerShell Count-exempel! I det här avsnittet vill jag räkna antalet förekomster av ordet Bytes i textfilen i den här skärmdumpen...

Som jag redan visade i ett tidigare exempel är det första steget att använda Get-Content kommando för att lista innehållet i textfilen.

|_+_|

Rör sedan resultatet till Var-Objekt och filtrera efter namnet på orden jag vill räkna...

|_+_|

Slutligen, skicka resultatet av det sista kommandot till Mått-Objekt .

|_+_|

För att bara visa resultatet, ändra kommandot som visas nedan.

|_+_|

Resultatet är 3.

Det är det, vår uppdaterade PowerShell-artikel! Jag hoppas att du tyckte att det var till hjälp.

Galaxy Note 3 marshmallow-uppdatering

Om du tyckte att den här artikeln var användbar, vänligen rösta Ja till frågan Var detta inlägg användbar nedan.

Alternativt kan du ställa en fråga, lämna en kommentar eller ge mer feedback med formuläret Lämna ett svar som finns i slutet av denna sida.

Slutligen, för fler PowerShell tech S Zones, besök vår Windows PowerShell How-To guide-sida. Du kan också hitta vår Work from Home-sida till stor hjälp.

Referenser och vidare läsning

  1. Mått-Objekt
  2. Om metoder
  3. 18 mest användbara Powershell-kommandon för Windows-administratörer
  4. Hur man extraherar en Powershell-delsträng från en sträng