Compartilhar via


Measure-Object

Calcula as propriedades numéricas de objetos e os caracteres, palavras e linhas em objetos de cadeia de caracteres, como arquivos de texto.

Sintaxe

GenericMeasure (Padrão)

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

TextMeasure

Measure-Object
    [[-Property] <PSPropertyExpression[]>]
    [-InputObject <PSObject>]
    [-Line]
    [-Word]
    [-Character]
    [-IgnoreWhiteSpace]
    [<CommonParameters>]

Description

O cmdlet Measure-Object calcula os valores de propriedade de determinados tipos de objeto. Measure-Object executa três tipos de medidas, dependendo dos parâmetros no comando.

O cmdlet Measure-Object executa cálculos nos valores de propriedade dos objetos. Você pode usar Measure-Object para contar objetos ou contar objetos com uma propriedade especificada. Você também pode usar Measure-Object para calcular o Mínimo, Máximo, Soma, StandardDeviation e Média de valores numéricos. Para objetos String, você também pode usar Measure-Object para contar o número de linhas, palavras e caracteres.

Exemplos

Exemplo 1: contar os arquivos e pastas em um diretório

Esse comando conta os arquivos e pastas no diretório atual.

Get-ChildItem | Measure-Object

Exemplo 2: medir os arquivos em um diretório

Este comando exibe o Mínimo, Máximoe Soma dos tamanhos de todos os arquivos no diretório atual e o tamanho médio de um arquivo no diretório.

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

Exemplo 3: medir texto em um arquivo de texto

Esse comando exibe o número de caracteres, palavras e linhas no arquivo Text.txt. Sem o parâmetro Raw, Get-Content gera o arquivo como uma matriz de linhas.

O primeiro comando usa Set-Content para adicionar algum texto padrão a um arquivo.

"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

Exemplo 4: medir objetos que contêm uma propriedade especificada

Este exemplo conta o número de objetos que têm uma propriedade DisplayName. Os dois primeiros comandos recuperam todos os serviços e processos no computador local. O terceiro comando conta o número combinado de serviços e processos. O último comando combina as duas coleções e canaliza o resultado para Measure-Object.

O objeto System.Diagnostics.Process não tem uma propriedade DisplayName e é deixado de fora da contagem 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

Exemplo 5: medir o conteúdo de um arquivo CSV

Esse comando calcula os anos médios de serviço dos funcionários de uma empresa.

O arquivo ServiceYrs.csv é um arquivo CSV que contém o número do funcionário e os anos de serviço de cada funcionário. A primeira linha da tabela é uma linha de cabeçalho de EmpNo, Years.

Quando você usa para importar o arquivo, o resultado é um PSCustomObject com propriedades de anotação de EmpNo e Years. Você pode usar Measure-Object para calcular os valores dessas propriedades, assim como qualquer outra propriedade de um objeto.

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

Exemplo 6: Medir valores boolianos

Este exemplo demonstra como o Measure-Object pode medir valores boolianos. Nesse caso, ele usa a propriedade PSIsContainer booliana para medir a incidência de pastas (vs. arquivos) no diretório atual.

Get-ChildItem | Measure-Object -Property PSIsContainer -Maximum -Sum -Minimum -Average
Count             : 126
Average           : 0.0634920634920635
Sum               : 8
Maximum           : 1
Minimum           : 0
StandardDeviation :
Property          : PSIsContainer

Exemplo 7: Medir cadeias de caracteres

O exemplo a seguir mede o número de linhas, primeiro uma única cadeia de caracteres e, em seguida, em várias cadeias de caracteres. O caractere de nova linha `n separa cadeias de caracteres em várias linhas.

# 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

Exemplo 8: Medir todos os valores

A partir do PowerShell 6, o parâmetro AllStats de Measure-Object permite medir todas as estatísticas juntas.

1..5 | Measure-Object -AllStats
Count             : 5
Average           : 3
Sum               : 15
Maximum           : 5
Minimum           : 1
StandardDeviation : 1.58113883008419
Property          :

Exemplo 9: Medir usando propriedades de scriptblock

A partir do PowerShell 6, Measure-Object dá suporte a propriedades ScriptBlock. O exemplo a seguir demonstra como usar uma propriedade ScriptBlock para determinar o tamanho, em MegaBytes, de todos os arquivos em um diretório.

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

Exemplo 10: medir hashtables

A partir do PowerShell 6, Measure-Object dá suporte à medição de entrada de com hash. O exemplo a seguir determina o maior valor para a chave num de 3 objetos de hashable.

@{num=3}, @{num=4}, @{num=5} | Measure-Object -Maximum Num
Count             : 3
Average           :
Sum               :
Maximum           : 5
Minimum           :
StandardDeviation :
Property          : num

Exemplo 11: Medir o desvio padrão

A partir do PowerShell 6, Measure-Object dá suporte ao parâmetro StandardDeviation. O exemplo a seguir determina o de desvio padrão para a CPU usada por todos os processos. Um desvio grande indicaria um pequeno número de processos que consomem mais CPU.

Get-Process | Measure-Object -Average -StandardDeviation CPU
Count             : 303
Average           : 163.032384488449
Sum               :
Maximum           :
Minimum           :
StandardDeviation : 859.444048419069
Property          : CPU

Exemplo 12: Medir usando curingas

A partir do PowerShell 6, Measure-Object dá suporte à medição de objetos usando curingas em nomes de propriedade. O exemplo a seguir determina o máximo de qualquer tipo de uso de memória paginada entre um conjunto de processos.

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 o cmdlet exibe todas as estatísticas das propriedades especificadas.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

GenericMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Average

Indica que o cmdlet exibe o valor médio das propriedades especificadas.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

GenericMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Character

Indica que o cmdlet conta o número de caracteres nos objetos de entrada.

Observação

O Word, Char e Line alterna a contagem dentro de cada objeto de entrada, bem como entre objetos de entrada. Veja o exemplo 7.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

TextMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-IgnoreWhiteSpace

Indica que o cmdlet ignora o espaço em branco nas contagens de caracteres. Por padrão, o espaço em branco não é ignorado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

TextMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-InputObject

Especifica os objetos a serem medidos. Insira uma variável que contenha os objetos ou digite um comando ou expressão que obtém os objetos.

Quando você usa o parâmetro InputObject com Measure-Object, em vez de canalizar resultados de comando para Measure-Object, o valor InputObject é tratado como um único objeto.

É recomendável que você use Measure-Object no pipeline se quiser medir uma coleção de objetos com base em se os objetos têm valores específicos em propriedades definidas.

Propriedades do parâmetro

Tipo:PSObject
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Line

Indica que o cmdlet conta o número de linhas nos objetos de entrada.

Observação

O Word, Char e Line alterna a contagem dentro de cada objeto de entrada, bem como entre objetos de entrada. Veja o exemplo 7.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

TextMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Maximum

Indica que o cmdlet exibe o valor máximo das propriedades especificadas.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

GenericMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Minimum

Indica que o cmdlet exibe o valor mínimo das propriedades especificadas.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

GenericMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Property

Especifica uma ou mais propriedades a serem medidas. Se você não especificar outras medidas, Measure-Object conta os objetos que têm as propriedades especificadas.

O valor do parâmetro da Propriedade pode ser uma nova propriedade calculada. A propriedade calculada deve ser um bloco de script. Para obter mais informações, consulte about_Calculated_Properties.

Propriedades do parâmetro

Tipo:

PSPropertyExpression[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:0
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-StandardDeviation

Indica que o cmdlet exibe o desvio padrão dos valores das propriedades especificadas.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

GenericMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Sum

Indica que o cmdlet exibe a soma dos valores das propriedades especificadas.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

GenericMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Word

Indica que o cmdlet conta o número de palavras nos objetos de entrada.

Observação

O Word, Char e Line alterna a contagem dentro de cada objeto de entrada, bem como entre objetos de entrada. Veja o exemplo 7.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

TextMeasure
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

PSObject

Você pode redirecionar objetos para este cmdlet.

Saídas

GenericMeasureInfo

Por padrão, esse cmdlet retorna um objeto GenericMeasureInfo.

TextMeasureInfo

Quando você usa o parâmetro Word, esse cmdlet retorna um objeto TextMeasureInfo.

Observações

O PowerShell inclui os seguintes aliases para Measure-Object:

  • Todas as plataformas:
    • measure

A partir do PowerShell 7.3, Measure-Object não retorna mais um erro ao processar um objeto que não está sendo medido, a menos que você esteja em execução no StrictMode. Em StrictMode, Measure-Object retorna um System.Management.Automation.PSArgumentException ao processar um objeto que não tem a propriedade especificada.