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
       [-InputObject <PSObject>]
       [[-Property] <String[]>]
       [-Sum]
       [-Average]
       [-Maximum]
       [-Minimum]
       [<CommonParameters>]
Measure-Object
       [-InputObject <PSObject>]
       [[-Property] <String[]>]
       [-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 -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, 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

Parametri

-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:False
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:False
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:False
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:False
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.

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-Sum

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

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
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:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

PSObject

È possibile inviare oggetti tramite pipe a Measure-Object.

Output

Microsoft.PowerShell.Commands.GenericMeasureInfo, Microsoft.PowerShell.Commands.TextMeasureInfo, Microsoft.PowerShell.Commands.GenericObjectMeasureInfo

Se si utilizza il parametro Word, restituisce un oggetto TextMeasureInfo . In caso contrario, restituisce un oggetto GenericMeasureInfo .