Contar ou calcular propriedades numéricas de objetos, como caracteres, palavras e linhas em objetos de string, pode ser exasperante. Felizmente, o cmdlet Measure-Object
do PowerShell está à altura da tarefa.
Neste tutorial, você aprenderá o poder do cmdlet Measure-Object
na automatização da medição de propriedades de objetos no PowerShell.
Mergulhe de cabeça para aprimorar suas habilidades de medição de objetos!
Pré-requisitos
Este tutorial é uma demonstração prática. Para acompanhar, você precisará de um sistema com o PowerShell instalado. Este tutorial utiliza o Windows 10 com PowerShell v7.
Contagem de Arquivos e Pastas
Saber o número de arquivos e pastas em um diretório pode ser útil em vários cenários. Um exemplo é quando você precisa monitorar o tamanho de uma pasta ou verificar o número de arquivos em um diretório.
O cmdlet Measure-Object
conta o número de arquivos e pastas em um diretório. A contagem exata ajuda a gerenciar e otimizar melhor os recursos do sistema.
Para ver como o cmdlet Measure-Object
funciona na contagem de arquivos e pastas:
1. Abra o PowerShell e execute o seguinte comando Get-ChildItem
para contar e retornar o total de arquivos e pastas coletivamente (Measure-Object
) no seu diretório atual.
A saída abaixo indica 4852 arquivos e pastas no diretório atual.

Talvez você queira incluir todos os arquivos e subdiretórios na árvore de diretórios recursivamente. Se sim, adicione o parâmetro
-Recurse
, como mostrado abaixo.Get-ChildItem -Recurse | Measure-Object
2. Em seguida, execute o mesmo comando abaixo como fez no passo um. Mas desta vez, adicione o parâmetro -Directory
para contar apenas os diretórios totais dentro do diretório de trabalho.
Como você pode ver abaixo, o total agora é menor (135), já que o comando contou apenas diretórios, excluindo todos os outros objetos.

3. Agora, execute o comando abaixo para contar os arquivos executáveis (.exe
) no seu diretório atual.
O parâmetro -Filter
informa ao cmdlet Get-ChildItem
para filtrar os resultados e retornar apenas os arquivos com a extensão que você especificar (ou seja, *.txt
, *.jpg
, *.csv
).

Medindo Tamanhos de Arquivos
Medir comprimentos e tamanhos de objetos pode ajudar a gerenciar melhor o seu sistema, já que arquivos grandes afetam o desempenho do sistema. Além de contar propriedades, você também pode medir o comprimento e tamanho dos objetos através do cmdlet Measure-Object
.
Execute o código abaixo para recuperar todos os arquivos no diretório atual (Get-ChildItem
) e exibir (Write-Host
) os seus respectivos comprimentos em bytes por padrão.
O código abaixo imprime cada medida no console, incluindo os tamanhos mínimo e máximo dos arquivos, tamanho médio dos arquivos, a soma dos tamanhos dos arquivos e o número total de arquivos.
Abaixo, você pode ver os tamanhos exibidos em bytes.

Talvez colar o código no console não seja o seu forte. Se for o caso, salve o código em um arquivo de script do PowerShell e execute-o.
Agora, execute os seguintes comandos para obter um arquivo no diretório atual, onde (Where-Object
) o seu tamanho ($_.Length
) é igual (-eq
) ao tamanho máximo do arquivo ($files.Maximum
).
A saída abaixo mostra o nome do arquivo mais extenso no diretório atual.

Medindo o Conteúdo de Arquivos de Texto
Em vez de medir tamanhos de arquivos, você pode precisar determinar o número de linhas, palavras ou caracteres em um arquivo de texto. Se for o caso, o cmdlet Measure-Object
tem muitos outros parâmetros para medir o conteúdo de arquivos de texto.
Execute o código abaixo para realizar a seguinte medida do conteúdo do arquivo de texto (`Measure-Object`) por `-Character`, `-Line` e `-Word`, e exibir (`Write-Host`) as medidas.
Certifique-se de alterar os valores das variáveis `$file_path` e `$file_content` com os de sua preferência.

Medindo Valores Booleanos
Valores booleanos são valores que podem ser apenas verdadeiros ou falsos. No PowerShell, valores booleanos são frequentemente usados para controlar o fluxo de um script, determinar uma condição (verdadeira ou falsa) ou indicar o sucesso ou falha de um comando.
Medir valores booleanos pode ser útil em vários cenários, como:
- Contar o número de valores verdadeiros ou falsos em um conjunto de dados.
- Determinar a porcentagem de valores verdadeiros em relação ao número total de valores.
Essas informações podem ajudar a tomar decisões sólidas no processamento ou análise de dados.
Para ver como a medição de valores booleanos funciona:
Execute os seguintes comandos para contar a soma dos valores booleanos (valores verdadeiros por padrão) no array (`$valores`).
Abaixo, o total Contagem dos valores booleanos é nove (9), enquanto a Soma é cinco (5) já que apenas os valores verdadeiros são contados.
E os valores falsos? Vamos para o próximo passo, e execute mais alguns comandos.

Agora, execute o código abaixo para subtrair a soma dos valores verdadeiros (`$verdadeiroContagem`) da contagem total dos valores booleanos (`$contagem`). A diferença da equação é o total dos valores falsos (`$falsoContagem`).

Se medir valores booleanos é uma tarefa diária, você pode criar uma função que pode chamar a qualquer momento para executar a tarefa.
Medindo Hashtables
Hashtables no PowerShell (uma coleção de pares chave-valor) permitem que você armazene e recupere dados de forma rápida e eficiente. Se precisar do número de itens em um hashtable ou dos valores máximo e mínimo, deixe o cmdlet Measure-Object
medir seus hashtables.
Execute os comandos abaixo para encontrar os valores -Mínimo
e -Máximo
da propriedade Num
em seu hashtable ($MyHastable
).

Medindo Desvios Padrão
Revisar conjuntos de dados pode ser confuso, mas não precisa ser. Medir o desvio padrão é útil ao compreender a distribuição dos valores do conjunto de dados. Você também pode identificar quaisquer valores discrepantes ou pontos de dados incomuns que afetam os resultados.
O desvio padrão mede a variação ou dispersão dos valores do conjunto de dados em relação ao valor médio (média). Essa medida é calculada encontrando a raiz quadrada da variância dos dados, que é a média das diferenças ao quadrado em relação à média.
Execute o código abaixo para calcular e exibir a -Média
e o -DesvioPadrão
de uma matriz de números armazenada na variável $Numbers
.
Em estatística, a média mede a tendência central, descrevendo o valor típico ou mais representativo de um conjunto de dados.
A média é calculada somando todos os números em um conjunto de dados e dividindo pelo número total de valores. Neste exemplo, o conjunto de dados é {10
, 20
, 30
, 40
, 50
} com uma soma de 150, e cinco números (5
) estão no conjunto.
Consequentemente, a média é calculada abaixo, que é 30
.
Por outro lado, o desvio padrão mede a dispersão ou a propagação de um conjunto de dados. O desvio padrão é calculado da seguinte forma:

Conclusão
Medir dados é uma tarefa essencial, e o cmdlet Measure-Object
do PowerShell é uma ferramenta poderosa para completar a tarefa. E neste tutorial, você aprendeu como medir dados de várias maneiras. Esteja você trabalhando com arquivos, conteúdo de arquivos de texto, valores booleanos, strings, arrays ou hashtables, medir esses dados pode fornecer insights valiosos.
Agora, você pode facilmente calcular os valores médio, máximo e mínimo dos seus dados e medir a variação ou dispersão dos mesmos. Com esses recursos, você pode obter uma compreensão mais profunda dos seus dados e tomar decisões informadas com base na sua análise.
Com este conhecimento recém-adquirido, por que não expandir seu toolkit do PowerShell e adicionar Compare-Object
ao seu arsenal?
Source:
https://adamtheautomator.com/powershell-measure-object/