Compartir a través de


Measure-Object

Calcula las propiedades numéricas de objetos y los caracteres, palabras y líneas en objetos de cadena (como archivos de texto).

Sintaxis

Measure-Object
       [[-Property] <PSPropertyExpression[]>]
       [-InputObject <PSObject>]
       [-StandardDeviation]
       [-Sum]
       [-AllStats]
       [-Average]
       [-Maximum]
       [-Minimum]
       [<CommonParameters>]
Measure-Object
       [[-Property] <PSPropertyExpression[]>]
       [-InputObject <PSObject>]
       [-Line]
       [-Word]
       [-Character]
       [-IgnoreWhiteSpace]
       [<CommonParameters>]

Description

El Measure-Object cmdlet calcula los valores de propiedad de determinados tipos de objeto. Measure-Object realiza tres tipos de medidas, en función de los parámetros del comando.

El Measure-Object cmdlet realiza cálculos sobre los valores de propiedad de los objetos. Puede usar Measure-Object para contar objetos o contar objetos con una propiedad especificada. También puede usar Measure-Object para calcular el valor Mínimo, Máximo, Suma, EstándarDeviation y Promedio de valores numéricos. En el caso de los objetos String , también puede usar Measure-Object para contar el número de líneas, palabras y caracteres.

Ejemplos

Ejemplo 1: Recuento de los archivos y carpetas de un directorio

Este comando cuenta los archivos y carpetas en el directorio actual.

Get-ChildItem | Measure-Object

Ejemplo 2: Medir los archivos de un directorio

Este comando muestra el tamaño mínimo, máximo y suma de todos los archivos del directorio actual y el tamaño medio de un archivo en el directorio.

Get-ChildItem | Measure-Object -Property length -Minimum -Maximum -Sum -Average

Ejemplo 3: Medir texto en un archivo de texto

Este comando muestra el número de caracteres, palabras y líneas en el archivo Text.txt. Sin el parámetro Raw , Get-Content genera el archivo como una matriz de líneas.

El primer comando usa Set-Content para agregar texto predeterminado a un archivo.

"One", "Two", "Three", "Four" | Set-Content -Path C:\Temp\tmp.txt
Get-Content C:\Temp\tmp.txt | Measure-Object -Character -Line -Word

Lines Words Characters Property
----- ----- ---------- --------
    4     4         15

Ejemplo 4: Medir objetos que contienen una propiedad especificada

En este ejemplo se cuenta el número de objetos que tienen una propiedad DisplayName . Los dos primeros comandos recuperan todos los servicios y procesos del equipo local. El tercer comando cuenta el número combinado de servicios y procesos. El último comando combina las dos colecciones y canaliza el resultado a Measure-Object.

El objeto System.Diagnostics.Process no tiene una propiedad DisplayName y se deja fuera del recuento final.

$services = Get-Service
$processes = Get-Process
$services + $processes | Measure-Object
$services + $processes | Measure-Object -Property DisplayName

Count    : 682
Average  :
Sum      :
Maximum  :
Minimum  :
Property :

Count    : 290
Average  :
Sum      :
Maximum  :
Minimum  :
Property : DisplayName

Ejemplo 5: Medir el contenido de un archivo CSV

Este comando calcula el promedio de años de servicio de los empleados de una compañía.

El ServiceYrs.csv archivo es un archivo CSV que contiene el número de empleado y los años de servicio de cada empleado. La primera fila de la tabla es una fila de encabezado de EmpNo, Years.

Cuando se usa Import-Csv para importar el archivo, el resultado es un PSCustomObject con las propiedades de Nota de EmpNo y Years. Puede usar Measure-Object para calcular los valores de estas propiedades, al igual que cualquier otra propiedad de un objeto.

Import-Csv d:\test\serviceyrs.csv | Measure-Object -Property years -Minimum -Maximum -Average

Ejemplo 6: Medir valores booleanos

En este ejemplo se muestra cómo Measure-Object puede medir los valores booleanos. En este caso, usa la propiedad booleana PSIsContainer para medir la incidencia de carpetas (frente a archivos) en el directorio actual.

Get-ChildItem | Measure-Object -Property psiscontainer -Maximum -Sum -Minimum -Average

Count             : 126
Average           : 0.0634920634920635
Sum               : 8
Maximum           : 1
Minimum           : 0
StandardDeviation :
Property          : PSIsContainer

Ejemplo 7: Medir cadenas

En el ejemplo siguiente se mide el número de líneas, primero una sola cadena y, a continuación, en varias cadenas. El carácter `n de nueva línea separa las cadenas en varias líneas.

# The newline character `n separates the string into separate lines, as shown in the output.
"One`nTwo`nThree"
"One`nTwo`nThree" | Measure-Object -Line

One
Two
Three


Lines Words Characters Property
----- ----- ---------- --------
    3

# The first string counts as a single line.
# The second string is separated into two lines by the newline character.
"One", "Two`nThree" | Measure-Object -Line

Lines Words Characters Property
----- ----- ---------- --------
    3

# The Word switch counts the number of words in each InputObject
# Each InputObject is treated as a single line.
"One, Two", "Three", "Four Five" | Measure-Object -Word -Line

Lines Words Characters Property
----- ----- ---------- --------
    3     5

Ejemplo 8: Medir todos los valores

A partir de PowerShell 6, el parámetro AllStats de Measure-Object permite medir todas las estadísticas juntas.

1..5 | Measure-Object -AllStats

Count             : 5
Average           : 3
Sum               : 15
Maximum           : 5
Minimum           : 1
StandardDeviation : 1.58113883008419
Property          :

Ejemplo 9: Medición mediante propiedades de scriptblock

A partir de PowerShell 6, Measure-Object admite las propiedades scriptBlock . En el ejemplo siguiente se muestra cómo usar una propiedad ScriptBlock para determinar el tamaño, en MegaBytes, de todos los archivos de un directorio.

Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}

Ejemplo 10: Medir tablas hash

A partir de PowerShell 6, Measure-Object admite la medición de la entrada de tabla hash. En el ejemplo siguiente se determina el valor más grande de la num clave de 3 objetos hashtable .

@{num=3}, @{num=4}, @{num=5} | Measure-Object -Maximum Num

Count             : 3
Average           :
Sum               :
Maximum           : 5
Minimum           :
StandardDeviation :
Property          : num

Ejemplo 11: Medir la desviación estándar

A partir de PowerShell 6, Measure-Object admite el -StandardDeviation parámetro . En el ejemplo siguiente se determina la desviación estándar de la CPU usada por todos los procesos. Una desviación grande indicaría un pequeño número de procesos que consumen la mayor parte de la CPU.

Get-Process | Measure-Object -Average -StandardDeviation CPU

Count             : 303
Average           : 163.032384488449
Sum               :
Maximum           :
Minimum           :
StandardDeviation : 859.444048419069
Property          : CPU

Ejemplo 12: Medición mediante caracteres comodín

A partir de PowerShell 6, Measure-Object admite la medición de objetos mediante caracteres comodín en nombres de propiedad. En el ejemplo siguiente se determina el máximo de cualquier tipo de uso de memoria paginada entre un conjunto de procesos.

Get-Process | Measure-Object -Maximum *paged*memory*size

Count             : 303
Average           :
Sum               :
Maximum           : 735784
Minimum           :
StandardDeviation :
Property          : NonpagedSystemMemorySize

Count             : 303
Average           :
Sum               :
Maximum           : 352104448
Minimum           :
StandardDeviation :
Property          : PagedMemorySize

Count             : 303
Average           :
Sum               :
Maximum           : 2201968
Minimum           :
StandardDeviation :
Property          : PagedSystemMemorySize

Count             : 303
Average           :
Sum               :
Maximum           : 719032320
Minimum           :
StandardDeviation :
Property          : PeakPagedMemorySize

Parámetros

-AllStats

Indica que el cmdlet muestra todas las estadísticas de las propiedades especificadas.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Average

Indica que el cmdlet muestra el valor medio de las propiedades especificadas.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Character

Indica que el cmdlet cuenta el número de caracteres de los objetos de entrada.

Nota:

Los modificadores Word, Char y Line cuentan dentro de cada objeto de entrada, así como entre objetos de entrada. Consulte el ejemplo 7.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-IgnoreWhiteSpace

Indica que el cmdlet omite el espacio en blanco en los recuentos de caracteres. Los espacios en blanco no se omiten de forma predeterminada.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-InputObject

Especifica los objetos que se van a medir. Especifique una variable que contenga los objetos o escriba un comando o una expresión que obtenga los objetos.

Cuando se usa el parámetro InputObject con Measure-Object, en lugar de canalizar los resultados del comando a Measure-Object, el valor InputObject se trata como un único objeto.

Se recomienda usar Measure-Object en la canalización si desea medir una colección de objetos en función de si los objetos tienen valores específicos en propiedades definidas.

Tipo:PSObject
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Line

Indica que el cmdlet cuenta el número de líneas de los objetos de entrada.

Nota:

Los modificadores Word, Char y Line cuentan dentro de cada objeto de entrada, así como entre objetos de entrada. Consulte el ejemplo 7.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Maximum

Indica que el cmdlet muestra el valor máximo de las propiedades especificadas.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Minimum

Indica que el cmdlet muestra el valor mínimo de las propiedades especificadas.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Property

Especifica una o varias propiedades que se van a medir. Si no especifica ninguna otra medida, Measure-Object cuenta los objetos que tienen las propiedades que especifique.

El valor del parámetro Property puede ser una nueva propiedad calculada. La propiedad calculada debe ser un bloque de script. Para obtener más información, consulte about_Calculated_Properties.

Tipo:PSPropertyExpression[]
Posición:0
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

-StandardDeviation

Indica que el cmdlet muestra la desviación estándar de los valores de las propiedades especificadas.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Sum

Indica que el cmdlet muestra la suma de los valores de las propiedades especificadas.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Word

Indica que el cmdlet cuenta el número de palabras de los objetos de entrada.

Nota:

Los modificadores Word, Char y Line cuentan dentro de cada objeto de entrada, así como entre objetos de entrada. Consulte el ejemplo 7.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

PSObject

Puede canalizar objetos a este cmdlet.

Salidas

GenericMeasureInfo

De forma predeterminada, este cmdlet devuelve un objeto GenericMeasureInfo .

TextMeasureInfo

Cuando se usa el parámetro Word , este cmdlet devuelve un objeto TextMeasureInfo .

Notas

PowerShell incluye los siguientes alias para Measure-Object:

  • Todas las plataformas:
    • measure

A partir de PowerShell 7.3, Measure-Object ya no devuelve un error al procesar un objeto que falta la propiedad que se mide a menos que se ejecute en StrictMode. En StrictMode, Measure-Object devuelve un System.Management.Automation.PSArgumentException objeto al procesar un objeto que falta en la propiedad especificada.