Measure-Object
Calcola le proprietà numeriche degli oggetti e i caratteri, le parole e le righe negli oggetti stringa, ad esempio i file di testo.
Sintassi
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-StandardDeviation]
[-Sum]
[-AllStats]
[-Average]
[-Maximum]
[-Minimum]
[<CommonParameters>]
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-Line]
[-Word]
[-Character]
[-IgnoreWhiteSpace]
[<CommonParameters>]
Descrizione
Il Measure-Object
cmdlet calcola i valori delle proprietà di determinati tipi di oggetto.
Measure-Object
esegue tre tipi di misurazioni, a seconda dei parametri nel comando .
Il Measure-Object
cmdlet esegue calcoli sui valori delle proprietà degli oggetti. È possibile utilizzare Measure-Object
per contare gli oggetti o contare gli oggetti con una proprietà specificata. È anche possibile utilizzare Measure-Object
per calcolare i valori Minimo, Massimo, Somma, StandardDeviation e Media dei valori numerici. Per gli oggetti String , è anche possibile usare Measure-Object
per contare il numero di righe, parole e caratteri.
Esempio
Esempio 1: Contare i file e le cartelle in una directory
Questo comando conta i file e le cartelle nella directory corrente.
Get-ChildItem | Measure-Object
Esempio 2: Misurare i file in una directory
Questo comando visualizza le dimensioni minime, massime e somma di tutti i file nella directory corrente e le dimensioni medie di un file nella directory.
Get-ChildItem | Measure-Object -Property length -Minimum -Maximum -Sum -Average
Esempio 3: Misurare il testo in un file di testo
Questo comando visualizza il numero di caratteri, parole e righe nel file Text.txt.
Senza il parametro Raw , Get-Content
restituisce il file come matrice di righe.
Il primo comando usa Set-Content
per aggiungere testo predefinito a un file.
"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
Esempio 4: Misurare oggetti contenenti una proprietà specificata
In questo esempio viene conteggiato il numero di oggetti con una proprietà DisplayName . I primi due comandi recuperano tutti i servizi e i processi nel computer locale. Il terzo comando conta il numero combinato di servizi e processi. L'ultimo comando combina le due raccolte e invia tramite pipe il risultato a Measure-Object
.
L'oggetto System.Diagnostics.Process non dispone di una proprietà DisplayName ed è escluso dal conteggio finale.
$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
Esempio 5: Misurare il contenuto di un file CSV
Questo comando calcola la media di anni di servizio dei dipendenti di una società.
Il ServiceYrs.csv
file è un file CSV che contiene il numero di dipendenti e gli anni di servizio di ogni dipendente. La prima riga della tabella è una riga di intestazione di EmpNo, Years.
Quando si usa Import-Csv
per importare il file, il risultato è un PSCustomObject con proprietà note di EmpNo e Years.
È possibile utilizzare Measure-Object
per calcolare i valori di queste proprietà, esattamente come qualsiasi altra proprietà di un oggetto.
Import-Csv d:\test\serviceyrs.csv | Measure-Object -Property years -Minimum -Maximum -Average
Esempio 6: Misurare i valori booleani
In questo esempio viene illustrato come misurare i Measure-Object
valori booleani.
In questo caso, usa la proprietà booleana PSIsContainer per misurare l'incidenza delle cartelle (rispetto ai file) nella directory corrente.
Get-ChildItem | Measure-Object -Property psiscontainer -Maximum -Sum -Minimum -Average
Count : 126
Average : 0.0634920634920635
Sum : 8
Maximum : 1
Minimum : 0
StandardDeviation :
Property : PSIsContainer
Esempio 7: Misurare le stringhe
Nell'esempio seguente viene misurato il numero di righe, prima una singola stringa, quindi tra più stringhe. Il carattere `n
di nuova riga separa le stringhe in più righe.
# 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
Esempio 8: Misurare tutti i valori
A partire da PowerShell 6, il parametro AllStats di Measure-Object
consente di misurare tutte le statistiche insieme.
1..5 | Measure-Object -AllStats
Count : 5
Average : 3
Sum : 15
Maximum : 5
Minimum : 1
StandardDeviation : 1.58113883008419
Property :
Esempio 9: Misurare con le proprietà scriptblock
A partire da PowerShell 6, Measure-Object
supporta le proprietà ScriptBlock . Nell'esempio seguente viene illustrato come utilizzare una proprietà ScriptBlock per determinare le dimensioni, in MegaBytes, di tutti i file in una directory.
Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}
Esempio 10: Misurare le tabelle hash
A partire da PowerShell 6, Measure-Object
supporta la misurazione dell'input della tabella hash. Nell'esempio seguente viene determinato il valore più grande per la num
chiave di 3 oggetti hashtable .
@{num=3}, @{num=4}, @{num=5} | Measure-Object -Maximum Num
Count : 3
Average :
Sum :
Maximum : 5
Minimum :
StandardDeviation :
Property : num
Esempio 11: Misurare la deviazione standard
A partire da PowerShell 6, Measure-Object
supporta il -StandardDeviation
parametro . L'esempio seguente determina la deviazione standard per la CPU usata da tutti i processi. Una deviazione elevata indica un numero ridotto di processi che utilizzano la maggior parte della CPU.
Get-Process | Measure-Object -Average -StandardDeviation CPU
Count : 303
Average : 163.032384488449
Sum :
Maximum :
Minimum :
StandardDeviation : 859.444048419069
Property : CPU
Esempio 12: Misurare usando caratteri jolly
A partire da PowerShell 6, Measure-Object
supporta la misurazione degli oggetti usando caratteri jolly nei nomi delle proprietà. Nell'esempio seguente viene determinato il numero massimo di qualsiasi tipo di utilizzo della memoria di paging tra un set di processi.
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
Parametri
-AllStats
Indica che il cmdlet visualizza tutte le statistiche delle proprietà specificate.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Average
Indica che il cmdlet visualizza il valore medio delle proprietà specificate.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Character
Indica che il cmdlet conta il numero di caratteri negli oggetti di input.
Nota
Le opzioni Word, Char e Line vengono conteggiati all'interno di ogni oggetto di input, nonché tra gli oggetti di input. Vedere l'esempio 7.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-IgnoreWhiteSpace
Indica che il cmdlet ignora gli spazi vuoti nei conteggi dei caratteri. Per impostazione predefinita, gli spazi vuoti non vengono ignorati.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica gli oggetti da misurare. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.
Quando si usa il parametro InputObject con Measure-Object
, invece di eseguire il piping dei risultati del comando a Measure-Object
, il valore InputObject viene considerato come un singolo oggetto.
È consigliabile usare Measure-Object
nella pipeline se si vuole misurare una raccolta di oggetti in base al fatto che gli oggetti abbiano valori specifici nelle proprietà definite.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Line
Indica che il cmdlet conta il numero di righe negli oggetti di input.
Nota
Le opzioni Word, Char e Line vengono conteggiati all'interno di ogni oggetto di input, nonché tra gli oggetti di input. Vedere l'esempio 7.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Maximum
Indica che il cmdlet visualizza il valore massimo delle proprietà specificate.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Minimum
Indica che il cmdlet visualizza il valore minimo delle proprietà specificate.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Property
Specifica una o più proprietà da misurare. Se non si specificano altre misure, Measure-Object
conta gli oggetti con le proprietà specificate.
Il valore del parametro Property può essere una nuova proprietà calcolata. La proprietà calcolata deve essere un blocco di script. Per altre informazioni, vedere about_Calculated_Properties.
Tipo: | PSPropertyExpression[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-StandardDeviation
Indica che il cmdlet visualizza la deviazione standard dei valori delle proprietà specificate.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Sum
Indica che il cmdlet visualizza la somma dei valori delle proprietà specificate.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Word
Indica che il cmdlet conta il numero di parole negli oggetti di input.
Nota
Le opzioni Word, Char e Line vengono conteggiati all'interno di ogni oggetto di input, nonché tra gli oggetti di input. Vedere l'esempio 7.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe oggetti a questo cmdlet.
Output
Per impostazione predefinita, questo cmdlet restituisce un oggetto GenericMeasureInfo .
Quando si utilizza il parametro Word , questo cmdlet restituisce un oggetto TextMeasureInfo .
Note
PowerShell include gli alias seguenti per Measure-Object
:
- Tutte le piattaforme:
measure
A partire da PowerShell 7.3, Measure-Object
non restituisce più un errore durante l'elaborazione di un oggetto che manca la proprietà misurata, a meno che non si esegua in StrictMode. In StrictMode restituisceMeasure-Object
un System.Management.Automation.PSArgumentException
oggetto durante l'elaborazione di un oggetto che manca la proprietà specificata.