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

GenericMeasure (impostazione predefinita).

Measure-Object
    [[-Property] <PSPropertyExpression[]>]
    [-InputObject <PSObject>]
    [-StandardDeviation]
    [-Sum]
    [-AllStats]
    [-Average]
    [-Maximum]
    [-Minimum]
    [<CommonParameters>]

TextMeasure

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 non elaborato, 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 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 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 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 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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

GenericMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Average

Indica che il cmdlet visualizza il valore medio delle proprietà specificate.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

GenericMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Character

Indica che il cmdlet conta il numero di caratteri negli oggetti di input.

Annotazioni

Word, Char e Line vengono conteggiati all'interno di ogni oggetto di input, nonché tra gli oggetti di input. Vedere l'esempio 7.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

TextMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-IgnoreWhiteSpace

Indica che il cmdlet ignora gli spazi vuoti nei conteggi dei caratteri. Per impostazione predefinita, lo spazio vuoto non viene ignorato.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

TextMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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, 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.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Line

Indica che il cmdlet conta il numero di righe negli oggetti di input.

Annotazioni

Word, Char e Line vengono conteggiati all'interno di ogni oggetto di input, nonché tra gli oggetti di input. Vedere l'esempio 7.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

TextMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Maximum

Indica che il cmdlet visualizza il valore massimo delle proprietà specificate.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

GenericMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Minimum

Indica che il cmdlet visualizza il valore minimo delle proprietà specificate.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

GenericMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:

PSPropertyExpression[]

Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

(All)
Posizione:0
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-StandardDeviation

Indica che il cmdlet visualizza la deviazione standard dei valori delle proprietà specificate.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

GenericMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Sum

Indica che il cmdlet visualizza la somma dei valori delle proprietà specificate.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

GenericMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Word

Indica che il cmdlet conta il numero di parole negli oggetti di input.

Annotazioni

Word, Char e Line vengono conteggiati all'interno di ogni oggetto di input, nonché tra gli oggetti di input. Vedere l'esempio 7.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

TextMeasure
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

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 di 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 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.