Contar o calcular propiedades numéricas de objetos, como caracteres, palabras y líneas en objetos de cadena, puede resultar exasperante. Afortunadamente, el cmdlet PowerShell Measure-Object
está a la altura de la tarea.
En este tutorial, aprenderás el poder del cmdlet Measure-Object
para automatizar la medición de propiedades de objetos en PowerShell.
Sumérgete para mejorar tus habilidades de medición de objetos.
Requisitos previos
Este tutorial es una demostración práctica. Para seguirlo, necesitarás un sistema con PowerShell instalado. Este tutorial utiliza Windows 10 con PowerShell v7.
Contar archivos y carpetas
Saber el número de archivos y carpetas en un directorio puede ser útil en varios escenarios. Un ejemplo es cuando necesitas monitorizar el tamaño de una carpeta o verificar la cantidad de archivos en un directorio.
El cmdlet Measure-Object
cuenta el número de archivos y carpetas en un directorio. El recuento exacto te ayuda a gestionar y optimizar mejor los recursos de tu sistema.
Para ver cómo funciona el cmdlet Measure-Object
al contar archivos y carpetas:
1. Abre PowerShell y ejecuta el siguiente comando Get-ChildItem
para contar y devolver el total de archivos y carpetas en tu directorio actual (Measure-Object
).
La salida a continuación indica 4852 archivos y carpetas en el directorio actual.

Tal vez desees incluir todos los archivos y subdirectorios en el árbol de directorios de forma recursiva. Si es así, añade el parámetro
-Recurse
, como se muestra a continuación.Get-ChildItem -Recurse | Measure-Object
2. A continuación, ejecuta el mismo comando de abajo como lo hiciste en el paso uno. Pero esta vez, añade el parámetro -Directory
para contar solo los directorios totales dentro del directorio de trabajo.
Como puedes ver a continuación, el recuento total es ahora menor (135) ya que el comando solo contó los directorios, excluyendo todos los demás objetos.

3. Ahora, ejecuta el siguiente comando para contar los archivos ejecutables (.exe
) en tu directorio actual.
El parámetro -Filter
indica al cmdlet Get-ChildItem
que filtre los resultados y solo devuelva los archivos con la extensión que especifiques (es decir, *.txt
, *.jpg
, *.csv
).

**Midiendo Tamaños de Archivos**
Medir las longitudes y tamaños de objetos puede ayudar a gestionar mejor su sistema, ya que los archivos grandes afectan el rendimiento del mismo. Además de contar propiedades, también puedes medir la longitud y tamaño de objetos mediante el cmdlet Measure-Object
.
Ejecuta el código a continuación para recuperar todos los archivos en el directorio actual (Get-ChildItem
) y mostrar (Write-Host
) sus respectivas longitudes en bytes de forma predeterminada.
El código a continuación muestra cada medida en la consola, incluyendo los tamaños mínimo y máximo de archivos, el tamaño promedio de archivo, la suma de tamaños de archivo y el número total de archivos.
A continuación, puedes ver los tamaños mostrados en bytes.

Tal vez pegar el código en la consola no sea lo tuyo. Si es así, guarda el código en un archivo de script de PowerShell y ejecútalo.
Ahora, ejecuta los siguientes comandos para obtener un archivo en el directorio actual, donde (Where-Object
) su tamaño ($_.Length
) es igual (-eq
) al tamaño máximo del archivo ($files.Maximum
).
La salida a continuación muestra el nombre del archivo más extenso en el directorio actual.

Medición del contenido de archivos de texto
En lugar de medir tamaños de archivos, es posible que necesites determinar el número de líneas, palabras o caracteres en un archivo de texto. Si es así, el cmdlet Measure-Object
tiene muchos otros parámetros para medir el contenido de archivos de texto.
Ejecuta el código a continuación para realizar la siguiente medida del contenido del archivo de texto (Measure-Object
) por -Character
, -Line
y -Word
, y muestra los resultados (Write-Host
).
Asegúrate de cambiar los valores de las variables $file_path
y $file_content
con tus preferidos.

Medición de Valores Booleanos
Los valores booleanos son valores que solo pueden ser verdaderos o falsos. En PowerShell, los valores booleanos se utilizan a menudo para controlar el flujo de un script, determinar una condición (verdadero o falso) o indicar el éxito o fracaso de un comando.
Medir valores booleanos puede ser útil en varios escenarios, como:
- Contar la cantidad de valores verdaderos o falsos en un conjunto de datos.
- Determinar el porcentaje de valores verdaderos en relación con el número total de valores.
Esta información puede ayudar a tomar decisiones acertadas en el procesamiento o análisis de datos.
Para ver cómo funciona la medición de valores booleanos:
Ejecuta los siguientes comandos para contar la suma de valores booleanos (valores verdaderos por defecto) en el array (`$values`).
A continuación, el total de la Cuenta de los valores booleanos es nueve (9), mientras que la Suma es cinco (5) ya que solo se cuentan los valores verdaderos.
¿Y los valores falsos? Sigue al siguiente paso y ejecuta algunos comandos más.

Ahora, ejecuta el código a continuación para restar la suma de los valores verdaderos (`$trueCount`) del total de valores booleanos contados (`$count`). La diferencia de la ecuación es el total de valores falsos (`$falseCount`).

Si medir valores booleanos es una tarea diaria, puedes crear una función que puedas llamar en cualquier momento para ejecutar la tarea.
Medición de Hashtables
Las Hashtables en PowerShell (una colección de pares clave-valor) te permiten almacenar y recuperar datos de manera rápida y eficiente. Si necesitas el número de elementos en una hashtable o los valores máximo y mínimo, deja que el cmdlet Measure-Object
mida tus hashtables.
Ejecuta los comandos a continuación para encontrar los valores -Mínimo
y -Máximo
de la propiedad Num
en tu hashtable ($MyHashtable
).

Medición de Desviaciones Estándar
Revisar conjuntos de datos puede ser tedioso, pero no tiene por qué serlo. Medir la desviación estándar es útil para entender la distribución de los valores del conjunto de datos. También puedes identificar cualquier valor atípico o punto de datos inusual que afecte los resultados.
La desviación estándar mide la variación o dispersión de los valores del conjunto de datos respecto al valor medio (promedio). Esta medida se calcula encontrando la raíz cuadrada de la varianza de los datos, que es el promedio de las diferencias al cuadrado respecto al promedio.
Ejecuta el código a continuación para calcular y mostrar el -Promedio
y la -DesviaciónEstándar
de un conjunto de números almacenados en la variable $Numbers
.
En estadística, la media mide la tendencia central, describiendo el valor típico o más representativo de un conjunto de datos.
El promedio se calcula sumando todos los números en un conjunto de datos y dividiendo por el número total de valores. En este ejemplo, el conjunto de datos es {10
, 20
, 30
, 40
, 50
} con una suma de 150, y hay cinco números (5
) en el conjunto.
Por lo tanto, se calcula el promedio a continuación, que es 30
.
Por otro lado, la desviación estándar mide la dispersión de un conjunto de datos. La desviación estándar se calcula de la siguiente manera:

Conclusión
Medir datos es una tarea esencial, y el cmdlet Measure-Object
de PowerShell es una herramienta poderosa para completar la tarea. Y en este tutorial, has aprendido cómo medir datos de muchas maneras. Ya sea que estés trabajando con archivos, contenidos de archivos de texto, valores booleanos, cadenas, matrices o tablas hash, medirlos puede proporcionar ideas valiosas.
Ahora, puedes calcular fácilmente los valores promedio, máximo y mínimo de tus datos y medir la variación o dispersión de tus datos. Con estas características, puedes obtener una comprensión más profunda de tus datos y tomar decisiones informadas basadas en tu análisis.
Con este conocimiento recién adquirido, ¿por qué no ampliar tu conjunto de herramientas de PowerShell y agregar Compare-Object
a tu arsenal?
Source:
https://adamtheautomator.com/powershell-measure-object/