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 cmdlet Measure-Object
calcola i valori delle proprietà di determinati tipi di oggetto.
Measure-Object
esegue tre tipi di misurazioni, a seconda dei parametri nel comando.
Il cmdlet Measure-Object
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 usare Measure-Object
per calcolare il minimo, massimo, Sum, StandardDeviation e media di valori numerici. Per oggetti String, è anche possibile utilizzare 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 il Minimo, Massimoe Somma delle dimensioni 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
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
$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 gli anni medi di servizio dei dipendenti di una società.
Il file ServiceYrs.csv
è 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 utilizza 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 il Measure-Object
può misurare i valori booleani.
In questo caso, usa la proprietà PSIsContainerbooleana 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 di nuova riga `n
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
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 proprietà ScriptBlock. Nell'esempio seguente viene illustrato come utilizzare una proprietà ScriptBlock
Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}
Esempio 10: Misurare le tabelle hash
A partire da PowerShell 6, Measure-Object
supporta la misurazione di input hashtable. Nell'esempio seguente viene determinato il valore più grande per la chiave num
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 parametro -StandardDeviation
. 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
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, lo spazio vuoto non viene ignorato.
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 contenente gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti .
Quando si usa il parametro InputObject con Measure-Object
, anziché i risultati del comando piping per 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
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
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
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 di Word
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 sia in esecuzione in StrictMode. In StrictMode, Measure-Object
restituisce un System.Management.Automation.PSArgumentException
durante l'elaborazione di un oggetto che manca la proprietà specificata.