Com comptar objectes a PowerShell

28 de maig de 2021 37667 Vistes recompte de powershell

Hi ha tantes raons per les quals potser voldreu comptar objectes a PowerShell. Com a exemple, és possible que vulgueu comptar els missatges d'error en un registre d'esdeveniments.





A més, és possible que vulgueu comptar el nombre de fitxers d'una carpeta específica.



Sigui el que necessitis comptar a PowerShell, pots utilitzar qualsevol de les opcions Compte Operador o el Mesura-Objecte Cmdlet. Aquesta guia us ensenya diferents exemples per demostrar com comptar amb els dos mètodes.

La guia està dividida en dues seccions. A la primera secció, aprendràs a utilitzar Compte Operador amb 8 exemples diferents.



Finalment, a la segona secció, us ensenyaré a comptar amb el Mesura-Objecte Cmdlet.



Navega per temes de publicació

Com comptar a PowerShell amb el Compte Operador

Com ja s'ha comentat a la introducció, en aquest primer apartat, us ensenyaré a comptar amb el Compte Operador . La secció comença amb la sintaxi de la Compte Operador .



A continuació, comparteixo vuit exemples de diferents maneres de comptar amb el Compte Operador .



Sintaxi del PowerShell Compte Operador

La sintaxi del PowerShell Compte Operador és:

|_+_|

El PowerShell Compte Operador d'un objecte es pot accedir embolicant l'objecte entre un claudàtor (). A continuació, afegiu un punt (.), seguit de la paraula, comptar .

Com utilitzar PowerShell Compte Operador Per comptar els registres d'esdeveniments

El primer exemple d'aplicació és mostrar-vos com comptar els registres d'esdeveniments.

En aquest exemple, vull comptar el nombre de missatges d'error al fitxer Sistema iniciar sessió en les últimes 24 hores. Podria executar una sola ordre, però per facilitar-ne la comprensió, la desglossaré.

El primer pas és desar les últimes 24 hores en una variable, utilitzant el Get-Date comandament.

Aquí teniu l'ordre...

|_+_|

Introduïu l'ordre a PowerShell i premeu la tecla Intro per executar-la.

Com utilitzar el mètode de recompte de PowerShell per comptar els registres d'esdeveniments

A continuació, executeu el Get-EventLog comanda, canalitza la sortida a On-Objecte comanda i filtra per error. Deseu el resultat de l'ordre en una variable anomenada $ErrorLogCount .

|_+_|

Si voleu veure una llista dels missatges d'error, executeu la variable $ErrorLogCount.

|_+_|

Aquí teniu les ordres a PowerShell...

Tingueu en compte que hi ha 5 registres d'errors. Això és fàcil de comptar; tanmateix, si el resultat tingués centenars de resultats, com els compteu?

Utilitzeu PowerShell Compte Operador ! Aquí teniu l'ordre final que compta el nombre de registres d'errors en el resultat de l'última ordre...

|_+_|

I, com era d'esperar, el resultat és 5!

Com utilitzar el mètode de recompte de PowerShell per comptar els registres d'esdeveniments

Si voleu executar les ordres en una sola ordre, aquí teniu l'ordre...

com activar lg v10 sense botó d'engegada
|_+_|

El resultat és el mateix...

Com utilitzar PowerShell Compte Operador per comptar fitxers en una carpeta

Una altra aplicació de PowerShell Compte El mètode és comptar el nombre d'arxius d'una carpeta. En aquesta secció, aprendràs a comptar els fitxers d'una carpeta.

També guanyareu com comptar fitxers en una carpeta i totes les subcarpetes. Finalment, us ensenyaré com utilitzar PowerShell Compte Mètode per comptar fitxers per data.

El primer pas per comptar els fitxers d'una carpeta és utilitzar el Get-ChildItem comanda per tornar els fitxers en una carpeta. En aquest exemple, desaré el resultat de l' Get-ChildItem comanda en una variable anomenada llista de fitxers .

|_+_|

A la segona part de l'ordre, vaig canalitzar la sortida del fitxer Get-ChildItem mana a On-Objecte . El On-Objecte comanda té! davant de $_.PSIsContainer: això indica On-Objecte per tornar tots els objectes excepte les carpetes.

Aquí teniu l'ordre a PowerShell. Per mostrar els resultats desats a la variable, vaig executar la variable...

Com utilitzar el mètode de recompte de PowerShell per comptar fitxers en una carpeta

Finalment, per comptar el nombre de fitxers, emboliqui el resultat al PowerShell Compte Operador .

drama xinès a kodi
|_+_|

El resultat mostra que hi ha 37 fitxers.

Seguint endavant, què passa si volem comptar els fitxers de la carpeta i totes les subcarpetes? Això requereix simplement afegir el Recurs paràmetre al Get-ChildItem part de l'ordre.

Aquí teniu l'ordre modificada que compta els fitxers d'una carpeta i totes les seves subcarpetes. Aquesta vegada, vaig executar l'ordre com una única comanda.

|_+_|

Aquí teniu el resultat amb 40 fitxers.

Com utilitzar el mètode de recompte de PowerShell per comptar fitxers en una carpeta

Com utilitzar PowerShell Compte Operador per comptar fitxers d'una carpeta per data

A l'última secció, us vaig mostrar com comptar tots els fitxers d'una carpeta i subcarpetes.

En aquesta secció, us mostraré com comptar el nombre de fitxers d'una carpeta en funció de la data.

Per ajudar-vos a entendre aquest exemple, executeu aquesta ordre del nostre exemple anterior.

|_+_|

Ara, executeu la variable. El resultat mostra que els fitxers tenen una propietat anomenada LastWriteTime .

El LastWriteTime La propietat indica l'última vegada que es va crear o actualitzar el fitxer. La implicació és que podem incloure aquesta propietat al fitxer On-Objecte filtre: llavors, retorna només els fitxers que s'han actualitzat o creat en una data especificada.

En aquest exemple, vull comptar només els fitxers actualitzats o creats durant les últimes 24 hores. Per tant, necessitaré un filtre de dates.

Per generar el filtre de data, executeu l'ordre següent i deseu el resultat en una variable...

|_+_|

A continuació, utilitzeu la variable, $Últimes 24 hores com a filtre addicional al On-Objecte costat de l'ordre anterior. Aquí teniu la comanda actualitzada.

|_+_|

L'ordre introdueix un nou filtre $_.LastWriteTime -ge $Last24Hours. Això compara el LastWriteTime propietat de cada fitxer amb la data desada al fitxer $Últimes 24 hores variable.

A continuació, qualsevol fitxer amb LastWriteTime superior o igual (ge) a la data de la variable (últimes 24 hores), es retornarà al resultat. Tanmateix, qualsevol fitxer amb LastWriteTime que quedi fora d'aquest rang s'elimina.

Què increïble!

L'ordre ha retornat només 3 fitxers!

Finalment, per comptar els fitxers d'aquesta carpeta i totes les seves subcarpetes que s'han creat o actualitzat durant les últimes 24 hores, utilitzeu PowerShell Compte Operador comanda a continuació:

|_+_|

Aquí teniu el resultat a PowerShell...

Com utilitzar PowerShell Compte Operador per comptar objectes en una matriu

Recentment, he actualitzat el nostre article PowerShell Arrays. A l'última actualització de l'article, vaig crear una matriu.

Aquí teniu l'script que crea una matriu, desada en una variable, ArrayList .

|_+_|

PowerShell Array té un Compte Propietat . Podeu utilitzar aquesta propietat tal com l'hem utilitzat en exemples anteriors d'aquest article.

Per tant, per comptar els objectes de la matriu de PowerShell desats al fitxer ArrayList variable, executeu l'ordre següent...

|_+_|

El resultat és 3: confirmant el nombre d'objectes de la nostra matriu!

Com utilitzar l'operador de recompte de PowerShell per comptar objectes en una matriu

Com comptar a PowerShell amb el cmdlet Measure-Object

Com comptar a PowerShell amb el cmdlet Measure-Object

A l'última secció d'aquesta guia, heu vist diferents maneres d'utilitzar PowerShell Compte Operador per comptar objectes. Aquesta secció us ensenya com comptar objectes amb el Mesura-Objecte Cmdlet.

Com veureu en els exemples d'aquesta secció, el Mesura-Objecte Cmdlet ofereix més opcions per comptar objectes.

Abans dels exemples, però, comencem amb la sintaxi de la Mesura-Objecte Cmdlet.

Sintaxi del cmdlet Measure-Object

Per veure la sintaxi completa del Mesura-Objecte Cmdlet, executeu l'ordre següent:

|_+_|

Del resultat de l'ordre, el Mesura-Objecte Cmdlet té dues sintaxis. Aquí teniu les versions simplificades de les sintaxis:

|_+_| |_+_|

Podeu utilitzar la primera sintaxi per retornar els valors mitjans, mínims i màxims dels objectes. Tanmateix, si voleu comptar el nombre de caràcters, eliminar espais en blanc, comptar línies o paraules, feu servir la segona sintaxi.

En els següents subapartats, parlaré de diversos exemples de com utilitzar-los Mesura-Objecte per comptar objectes a PowerShell.

Com utilitzar el cmdlet Measure-Object per comptar els caràcters d'una cadena

La majoria de vegades, els administradors de sistema hauran de comptar el nombre total d'elements en una cadena o objecte de PowerShell. Tanmateix, en casos excepcionals, els administradors de sistema poden trobar tasques automàtiques de PowerShell que requereixen un recompte més granular.

Per exemple, és possible que se us demani que compti el nombre de caràcters d'una cadena. En aquest exemple, us ensenyaré a comptar el nombre total de caràcters d'una cadena.

Per ser clar, un caràcter és un únic objecte com ara 1 o a.

Comencem amb un exemple molt senzill, per comptar el nombre de caràcters d'aquesta cadena de números

|_+_|

Òbviament, hi ha sis caràcters, però com comptem els caràcters amb PowerShell? La resposta senzilla és canalitzar el resultat a Mesura-Objecte comanda i especifiqueu el Personatge paràmetre.

Aquí teniu l'ordre...

|_+_|

Una altra manera d'executar l'ordre és especificar la cadena, 123456 amb la variable InputObject en lloc de canalitzar-la...

|_+_|

Les dues ordres produeixen el mateix resultat, 6!

Com comptar a PowerShell amb el cmdlet Measure-Object: com utilitzar el cmdlet Measure-Object per comptar caràcters en una cadena

Com comptar un caràcter específic en una cadena

Ara, per obtenir un exemple més avançat: què passa si voleu comptar el nombre d'un caràcter específic en una cadena?

Per exemple, suposem que voleu comptar el nombre de vegades que apareix el número 2 en aquesta cadena:

|_+_|

El primer pas és convertir la cadena en una matriu de caràcters Unicode. Per aconseguir-ho, utilitzeu ToCharArray Mètode .

Aquí teniu l'ordre...

|_+_|

El que fa l'ordre és dividir la cadena en membres d'una matriu de PowerShell. Aquí teniu el resultat...

Ara que heu convertit la cadena en una matriu, el següent pas és dirigir-la On-Objecte . Després, a la On-Objecte bloc de filtres, utilitzeu $_ variable automàtica per retornar els caràcters que voleu comptar.

En aquest exemple, volem comptar totes les ocurrències de 2. Aquesta és l'ordre que fa aquesta feina...

|_+_|

L'ordre només retorna els caràcters que volem comptar.

Com comptar a PowerShell amb el cmdlet Measure-Object: com utilitzar el cmdlet Measure-Object per comptar caràcters específics en una cadena

Finalment, conduïu l'última ordre a Mesura-Objecte .

|_+_|

El resultat final ens indica que el caràcter, 2, va aparèixer 3 vegades a la cadena original, 123456225.

Com podeu veure a l'última comanda, el resultat té un munt d'informació més. També inclou la paraula Compte.

ko-fi o patreon

Què passa si voleu mostrar el nombre de caràcters sense aquesta altra informació irrellevant?

Simplement afegiu l'ordre permeable entre un claudàtor (), seguit d'un punt (.). Finalment, afegeix la paraula Compte .

Compte és la propietat destacada a la darrera captura de pantalla. És el mateix PowerShell Compte Propietat hem estat discutint en aquesta guia.

|_+_|

Aquí tens, fàcil!

Com comptar a PowerShell amb el cmdlet Measure-Object: com utilitzar el cmdlet Measure-Object per comptar caràcters específics en una cadena

Com utilitzar PowerShell Measure-Object per comptar el nombre de línies d'un fitxer de text

Els exemples d'aquesta secció s'estan fent emocionants!

En aquesta subsecció, vull millorar una mica el joc. Vull mostrar-vos com comptar el nombre de línies d'un fitxer de text.

Suposem que voleu comptar el nombre de línies del fitxer de text que es mostra en aquesta captura de pantalla...

El primer pas és utilitzar el Obtenir contingut comanda per retornar el contingut del fitxer. A continuació, conduïu la sortida a Mesura-Objecte i especifiqueu el Línia paràmetre.

Aquí teniu l'ordre final...

|_+_|

I aquí teniu el resultat... 4 línies al fitxer de text...

Com utilitzar PowerShell Measure-Object per comptar el nombre de línies d'un fitxer de text

Alternativament, si voleu comptar el nombre de paraules del fitxer de text, substituïu el Línia paràmetre amb Paraula .

|_+_|

Casualment, també hi ha 4 paraules.

Com utilitzar PowerShell Measure-Object Cmdlet per comptar línies en un fitxer CSV

En aquest exemple següent, vull comptar el nombre de línies d'aquest fitxer CSV. Com podeu veure, hi ha 15 línies.

Com utilitzar PowerShell Measure-Object Cmdlet per comptar línies en un fitxer CSV

L'enfocament és similar a comptar el nombre de línies d'un fitxer de text. No obstant això, és menys complicat.

Per comptar el nombre de línies del fitxer CSV anterior, en primer lloc, utilitzeu Importar-Csv comanda per llistar el contingut del fitxer CSV. A continuació, canalitzeu la sortida de la Importar-Csv mana a Mesura-Objecte .

Aquí teniu l'ordre final...

reproduint fitxers MKV a l'iPad
|_+_|

I el resultat...

Una vegada més, si voleu mostrar només el nombre de línies, executeu l'ordre següent...

|_+_|

Com utilitzar PowerShell Measure-Object Cmdlet per comptar les ocurrències de cadena en un fitxer

Aquest és un altre exemple emocionant de PowerShell Count! En aquesta secció, vull comptar el nombre d'ocurrències de la paraula Bytes al fitxer de text d'aquesta captura de pantalla...

Com ja vaig mostrar en un exemple anterior, el primer pas és utilitzar el Obtenir contingut comanda per llistar el contingut del fitxer de text.

|_+_|

A continuació, canalitzeu el resultat a On-Objecte i filtra pel nom de les paraules que vull comptar...

|_+_|

Finalment, canalitzeu el resultat de l'última ordre a Mesura-Objecte .

|_+_|

Per mostrar només el resultat, modifiqueu l'ordre tal com es mostra a continuació.

|_+_|

El resultat és 3.

Això és tot, el nostre article de recompte de PowerShell actualitzat! Espero que us sigui útil.

Si heu trobat útil aquest article, si us plau voteu a la pregunta Va ser útil aquesta publicació a continuació.

Alternativament, podeu fer una pregunta, deixar un comentari o proporcionar més comentaris amb el formulari Deixa una resposta que es troba al final d'aquesta pàgina.

Finalment, per obtenir més zones S de tecnologia de PowerShell, visiteu la nostra pàgina de guia de instruccions de Windows PowerShell. També pot ser que la nostra pàgina de treball des d'inici sigui molt útil.

Referències i lectura addicional

  1. Mesura-Objecte
  2. Sobre els mètodes
  3. 18 ordres de Powershell més útils per a administradors de Windows
  4. Com extreure una subcadena de Powershell d'una cadena