Contare o calcolare proprietà numeriche degli oggetti, come caratteri, parole e righe negli oggetti stringa, può essere esasperante. Fortunatamente, il cmdlet Measure-Object
di PowerShell è all’altezza del compito.
In questo tutorial, imparerai la potenza del cmdlet Measure-Object
nell’automatizzare la misurazione delle proprietà degli oggetti in PowerShell.
Immergiti subito per migliorare le tue competenze nella misurazione degli oggetti!
Prerequisiti
Questo tutorial è una dimostrazione pratica. Per seguirlo, avrai bisogno di un sistema con PowerShell installato. Questo tutorial utilizza Windows 10 con PowerShell v7.
Conteggio di file e cartelle
Sapere il numero di file e cartelle in una directory può essere utile in vari scenari. Un esempio è quando hai bisogno di monitorare la dimensione di una cartella o verificare il numero di file in una directory.
Il cmdlet Measure-Object
conta il numero di file e cartelle in una directory. Il conteggio esatto ti aiuta a gestire e ottimizzare meglio le risorse del sistema.
Per vedere come funziona il cmdlet Measure-Object
nel conteggio di file e cartelle:
1. Apri PowerShell e esegui il seguente comando Get-ChildItem
per contare e restituire il totale di file e cartelle collettivamente (Measure-Object
) nella tua directory corrente.
L’output qui sotto indica 4852 file e cartelle nella directory corrente.

Forse desideri includere tutti i file e le sottodirectory nell’albero della directory in modo ricorsivo. In tal caso, aggiungi il parametro
-Recurse
, come mostrato di seguito.Get-ChildItem -Recurse | Measure-Object
2. Successivamente, esegui lo stesso comando di prima. Ma questa volta, aggiungi il parametro -Directory
per contare solo le cartelle totali all’interno della directory di lavoro.
Come puoi vedere qui sotto, il conteggio totale è ora inferiore (135) poiché il comando ha contato solo le cartelle, escludendo tutti gli altri oggetti.

3. Ora, esegui il comando seguente per contare i file eseguibili (.exe
) nella tua directory corrente.
Il parametro -Filter
indica al cmdlet Get-ChildItem
di filtrare i risultati e restituire solo i file con l’estensione specificata (ad esempio, *.txt
, *.jpg
, *.csv
).

Misurare le dimensioni dei file
Misurare la lunghezza e le dimensioni degli oggetti può aiutare a gestire meglio il sistema poiché i file di grandi dimensioni influiscono sulle prestazioni del sistema. Oltre al conteggio delle proprietà, è possibile anche misurare la lunghezza e le dimensioni degli oggetti tramite il cmdlet Measure-Object
.
Esegui il codice seguente per recuperare tutti i file nella directory corrente (Get-ChildItem
) e visualizzare (Write-Host
) le rispettive lunghezze in byte per impostazione predefinita.
Il codice di seguito restituisce ogni misurazione alla console, inclusi le dimensioni minime e massime dei file, la dimensione media dei file, la somma delle dimensioni dei file e il numero totale di file.
Di seguito, è possibile vedere le dimensioni visualizzate in byte.

Forse incollare il codice nella console non fa al caso tuo. In tal caso, salva il codice in un file script di PowerShell e eseguilo.
Ora, esegui i seguenti comandi per ottenere un file nella directory corrente, in cui (Where-Object
) la sua dimensione ($_.Length
) è uguale (-eq
) alla dimensione massima del file ($files.Maximum
).
L’output sottostante mostra il nome del file più esteso nella directory corrente.

Misurazione del contenuto di un file di testo
Invece di misurare le dimensioni dei file, potresti avere bisogno di determinare il numero di righe, parole o caratteri in un file di testo. In tal caso, il cmdlet Measure-Object
ha molti altri parametri per misurare il contenuto di un file di testo.
Esegui il codice seguente per eseguire le seguenti misurazioni sul contenuto del file di testo (Measure-Object
) utilizzando le opzioni -Character
, -Line
e -Word
, e stampa (Write-Host
) le misurazioni.
Assicurati di modificare i valori delle variabili $file_path
e $file_content
con quelli desiderati.

Misurazione dei valori booleani
I valori booleani sono valori che possono essere solo veri o falsi. In PowerShell, i valori booleani vengono spesso utilizzati per controllare il flusso di uno script, determinare una condizione (vero o falso) o indicare il successo o il fallimento di un comando.
La misurazione dei valori booleani può essere utile in vari scenari, ad esempio:
- Contare il numero di valori veri o falsi in un set di dati.
- Determinare la percentuale di valori veri rispetto al numero totale di valori.
Queste informazioni possono aiutare a prendere decisioni corrette nel processo o nell’analisi dei dati.
Per vedere come funziona la misurazione dei valori booleani:
Esegui i seguenti comandi per conteggiare la somma dei valori booleani (valori veri di default) nell’array ($values
).
Di seguito, il totale Count dei valori booleani è nove (9), mentre la Sum è cinque (5) poiché vengono contati solo i valori veri.
E per i valori falsi? Passa al passaggio successivo e esegui alcuni comandi aggiuntivi.

Ora, esegui il codice seguente per sottrarre la somma dei valori veri ($trueCount
) dal conteggio totale dei valori booleani ($count
). La differenza dall’equazione è il totale dei valori falsi ($falseCount
).

Se misurare i valori booleani è un compito quotidiano, puoi creare una funzione che puoi chiamare ogni volta per eseguire il compito.
Misurare gli hashtable
Gli hashtable in PowerShell (una collezione di coppie chiave-valore) ti consentono di memorizzare e recuperare dati in modo rapido ed efficiente. Se hai bisogno del numero di elementi in un hashtable o dei valori massimi e minimi, lascia che il cmdlet Measure-Object
misuri i tuoi hashtable.
Esegui i comandi seguenti per trovare i valori -Minimum
e -Maximum
della proprietà Num
nel tuo hashtable ($MyHastable
).

Misurare le deviazioni standard
La revisione dei set di dati può essere dispersiva, ma non è necessario che lo sia. Misurare la deviazione standard è utile per capire la distribuzione dei valori del set di dati. È anche possibile identificare eventuali valori anomali o punti dati insoliti che influenzano i risultati.
La deviazione standard misura la variazione o la dispersione dei valori del set di dati rispetto al valore medio (media). Questa misura viene calcolata trovando la radice quadrata della varianza dei dati, che è la media delle differenze quadrate rispetto alla media.
Esegui il codice sottostante per calcolare e visualizzare la -Media
e la -DeviazioneStandard
di un array di numeri memorizzato nella variabile $Numbers
.
In statistica, la media misura la tendenza centrale, descrivendo il valore tipico o più rappresentativo di un set di dati.
La media viene calcolata aggiungendo tutti i numeri in un set di dati e dividendo per il numero totale di valori. In questo esempio, il set di dati è {10
, 20
, 30
, 40
, 50
} con una somma di 150, e ci sono cinque numeri (5
) nel set.
Di conseguenza, la media viene calcolata di seguito, ed è 30
.
D’altra parte, la deviazione standard misura la dispersione di un set di dati. La deviazione standard viene calcolata nel seguente modo:

Conclusione
Misurare i dati è un compito essenziale e il cmdlet PowerShell Measure-Object
è uno strumento potente per completare il compito. In questo tutorial, hai imparato come misurare i dati in molti modi. Che tu stia lavorando con file, contenuti di file di testo, valori booleani, stringhe, array o tabelle hash, misurarli può fornire preziose informazioni.
Ora puoi facilmente calcolare i valori medi, massimi e minimi dei tuoi dati e misurare la variazione o la dispersione dei tuoi dati. Con queste funzionalità, puoi ottenere una comprensione più approfondita dei tuoi dati e prendere decisioni informate basate sulla tua analisi.
Con questa nuova conoscenza, perché non ampliare il tuo set di strumenti PowerShell e aggiungere Compare-Object
al tuo arsenale?
Source:
https://adamtheautomator.com/powershell-measure-object/