Condividi tramite


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

PSObject

È possibile inviare tramite pipe oggetti a questo cmdlet.

Output

GenericMeasureInfo

Per impostazione predefinita, questo cmdlet restituisce un oggetto GenericMeasureInfo .

TextMeasureInfo

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.