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
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
O Measure-Object
cmdlet calcula os valores de propriedade de determinados tipos de objeto.
Measure-Object
Executa três tipos de medições, dependendo dos parâmetros no comando.
O Measure-Object
cmdlet 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, Desvio Padrão 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
Esse comando exibe o Mínimo, o Máximo e a 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
Este 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 é usado 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 na máquina 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
Este comando calcula os médio anos de serviço dos funcionários de uma empresa.
O ServiceYrs.csv
arquivo é 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 Import-Csv
para importar o arquivo, o resultado é um PSCustomObject com propriedades de nota 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 booleanos
Este exemplo demonstra como o Measure-Object
pode medir valores booleanos.
Nesse caso, ele usa a propriedade booleana PSIsContainer 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, várias cadeias de caracteres. O caractere `n
de nova linha separa as 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 tabelas de hash
A partir do PowerShell 6, Measure-Object
dá suporte à medição da entrada da tabela de hash. O exemplo a seguir determina o maior valor para a num
chave de 3 objetos de tabela de hash.
@{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 -StandardDeviation
parâmetro. O exemplo a seguir determina o desvio padrão para a CPU usada por todos os processos. Um grande desvio indicaria um pequeno número de processos consumindo 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.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Average
Indica que o cmdlet exibe o valor médio das propriedades especificadas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Character
Indica que o cmdlet conta o número de caracteres nos objetos de entrada.
Observação
As opções Word, Char e Line contam dentro de cada objeto de entrada, bem como entre os objetos de entrada. Veja o Exemplo 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-IgnoreWhiteSpace
Indica que o cmdlet ignora o espaço em branco na contagem de caracteres. Por padrão, o espaço em branco não é ignorado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica os objetos a serem medidos. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.
Quando você usa o parâmetro InputObject com Measure-Object
, em vez de canalizar os resultados do 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 no fato de os objetos terem valores específicos em propriedades definidas.
Tipo: | PSObject |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Line
Indica que o cmdlet conta o número de linhas nos objetos de entrada.
Observação
As opções Word, Char e Line contam dentro de cada objeto de entrada, bem como entre os objetos de entrada. Veja o Exemplo 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Maximum
Indica que o cmdlet exibe o valor máximo das propriedades especificadas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Minimum
Indica que o cmdlet exibe o valor mínimo das propriedades especificadas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Property
Especifica uma ou mais propriedades a serem medidas. Se você não especificar nenhuma outra medida, Measure-Object
contará os objetos que têm as propriedades especificadas.
O valor do parâmetro Property pode ser uma nova propriedade calculada. A propriedade calculada deve ser um bloco de script. Para obter mais informações, consulte about_Calculated_Properties.
Tipo: | PSPropertyExpression[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-StandardDeviation
Indica que o cmdlet exibe o desvio padrão dos valores das propriedades especificadas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Sum
Indica que o cmdlet exibe a soma dos valores das propriedades especificadas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Word
Indica que o cmdlet conta o número de palavras nos objetos de entrada.
Observação
As opções Word, Char e Line contam dentro de cada objeto de entrada, bem como entre os objetos de entrada. Veja o Exemplo 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar objetos para esse cmdlet.
Saídas
Por padrão, esse cmdlet retorna um objeto GenericMeasureInfo .
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, não retorna mais um erro ao processar um objeto que não tem a propriedade que está sendo medida, Measure-Object
a menos que você esteja executando em StrictMode. Em StrictMode, Measure-Object
retorna um System.Management.Automation.PSArgumentException
ao processar um objeto que não tem a propriedade especificada.