Freigeben über


Measure-Object

Berechnet die numerischen Eigenschaften von Objekten und die Zeichen, Wörter und Zeilen in Zeichenfolgenobjekten, z. B. Textdateien.

Syntax

GenericMeasure (Standardwert)

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>]

Beschreibung

Das Cmdlet Measure-Object berechnet die Eigenschaftswerte bestimmter Objekttypen. Measure-Object führt je nach den Parametern im Befehl drei Maßtypen aus.

Das Cmdlet Measure-Object führt Berechnungen für die Eigenschaftswerte von Objekten aus. Mit Measure-Object können Sie Objekte zählen oder Objekte mit einer angegebenen Propertyzählen. Sie können auch Measure-Object verwenden, um die Minimum, Maximum, Summe, StandardDeviation und Mittelwert numerischer Werte zu berechnen. Für String--Objekte können Sie auch Measure-Object verwenden, um die Anzahl der Zeilen, Wörter und Zeichen zu zählen.

Beispiele

Beispiel 1: Zählen der Dateien und Ordner in einem Verzeichnis

Mit diesem Befehl werden die Dateien und Ordner im aktuellen Verzeichnis zählungen.

Get-ChildItem | Measure-Object

Beispiel 2: Messen der Dateien in einem Verzeichnis

Mit diesem Befehl werden die Minimum, Maximumund Summe der Größe aller Dateien im aktuellen Verzeichnis sowie die durchschnittliche Größe einer Datei im Verzeichnis angezeigt.

Get-ChildItem | Measure-Object -Property Length -Minimum -Maximum -Sum -Average

Beispiel 3: Messen von Text in einer Textdatei

Dieser Befehl zeigt die Anzahl der Zeichen, Wörter und Zeilen in der Text.txt Datei an. Ohne den Parameter "Raw" gibt Get-Content die Datei als Array von Zeilen aus.

Der erste Befehl verwendet Set-Content, um einer Datei Standardtext hinzuzufügen.

"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

Beispiel 4: Messen von Objekten, die eine angegebene Eigenschaft enthalten

In diesem Beispiel wird die Anzahl der Objekte gezählt, die eine DisplayName-eigenschaft aufweisen. Die ersten beiden Befehle rufen alle Dienste und Prozesse auf dem lokalen Computer ab. Der dritte Befehl zählt die kombinierte Anzahl von Diensten und Prozessen. Der letzte Befehl kombiniert die beiden Auflistungen und Pfeifen des Ergebnisses auf Measure-Object.

Das System.Diagnostics.Process--Objekt verfügt nicht über eine DisplayName--Eigenschaft und wird aus der endgültigen Anzahl weggelassen.

$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

Beispiel 5: Messen des Inhalts einer CSV-Datei

Mit diesem Befehl werden die durchschnittlichen Dienstjahre der Mitarbeiter eines Unternehmens berechnet.

Die datei ServiceYrs.csv ist eine CSV-Datei, die die Mitarbeiternummer und die Dienstjahre jedes Mitarbeiters enthält. Die erste Zeile in der Tabelle ist eine Kopfzeile von EmpNo, Jahre.

Wenn Sie Import-Csv zum Importieren der Datei verwenden, ist das Ergebnis ein PSCustomObject- mit Notizeigenschaften von EmpNo und Years. Sie können Measure-Object verwenden, um die Werte dieser Eigenschaften wie jede andere Eigenschaft eines Objekts zu berechnen.

Import-Csv D:\test\serviceyrs.csv | Measure-Object -Property Years -Minimum -Maximum -Average

Beispiel 6: Messen boolescher Werte

In diesem Beispiel wird veranschaulicht, wie die Measure-Object boolesche Werte messen kann. In diesem Fall wird die PSIsContainerboolesche Eigenschaft verwendet, um das Auftreten von Ordnern (vs. Dateien) im aktuellen Verzeichnis zu messen.

Get-ChildItem | Measure-Object -Property PSIsContainer -Maximum -Sum -Minimum -Average
Count             : 126
Average           : 0.0634920634920635
Sum               : 8
Maximum           : 1
Minimum           : 0
StandardDeviation :
Property          : PSIsContainer

Beispiel 7: Messen von Zeichenfolgen

Das folgende Beispiel misst die Anzahl der Zeilen, zuerst eine einzelne Zeichenfolge und dann mehrere Zeichenfolgen. Das Zeilenumbruchzeichen `n trennt Zeichenfolgen in mehrere Zeilen.

# 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

Beispiel 8: Messen aller Werte

Ab PowerShell 6 können Sie mit dem AllStats Parameter von Measure-Object alle Statistiken zusammen messen.

1..5 | Measure-Object -AllStats
Count             : 5
Average           : 3
Sum               : 15
Maximum           : 5
Minimum           : 1
StandardDeviation : 1.58113883008419
Property          :

Beispiel 9: Messen mit Scriptblock-Eigenschaften

Ab PowerShell 6 unterstützt Measure-ObjectScriptBlock- Eigenschaften. Im folgenden Beispiel wird veranschaulicht, wie Sie eine ScriptBlock-Eigenschaft verwenden, um die Größe aller Dateien in MegaBytes in einem Verzeichnis zu bestimmen.

Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}

Beispiel 10: Messen von Hashtables

Ab PowerShell 6 unterstützt Measure-Object die Messung Hashtable- Eingabe. Im folgenden Beispiel wird der größte Wert für den num Schlüssel von 3 Hashtable--Objekten bestimmt.

@{num=3}, @{num=4}, @{num=5} | Measure-Object -Maximum Num
Count             : 3
Average           :
Sum               :
Maximum           : 5
Minimum           :
StandardDeviation :
Property          : num

Beispiel 11: Messen der Standardabweichung

Ab PowerShell 6 unterstützt Measure-Object den parameter StandardDeviation. Im folgenden Beispiel wird die Standardabweichung für die cpu bestimmt, die von allen Prozessen verwendet wird. Eine große Abweichung würde auf eine kleine Anzahl von Prozessen hinweisen, die die meiste CPU verbrauchen.

Get-Process | Measure-Object -Average -StandardDeviation CPU
Count             : 303
Average           : 163.032384488449
Sum               :
Maximum           :
Minimum           :
StandardDeviation : 859.444048419069
Property          : CPU

Beispiel 12: Messen mithilfe von Wildcards

Ab PowerShell 6 unterstützt Measure-Object die Messung von Objekten mithilfe von Platzhaltern in Eigenschaftennamen. Im folgenden Beispiel wird die maximale Anzahl von Seitenspeicherauslastungen zwischen einer Gruppe von Prozessen bestimmt.

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

Parameter

-AllStats

Gibt an, dass das Cmdlet alle Statistiken der angegebenen Eigenschaften anzeigt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GenericMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Average

Gibt an, dass das Cmdlet den Mittelwert der angegebenen Eigenschaften anzeigt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GenericMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Character

Gibt an, dass das Cmdlet die Anzahl der Zeichen in den Eingabeobjekten zählt.

Hinweis

Die Word, Char und Line Schalter zählen innerhalb jedes Eingabeobjekts sowie für Eingabeobjekte. Siehe Beispiel 7.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

TextMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-IgnoreWhiteSpace

Gibt an, dass das Cmdlet Leerzeichen in Zeichenanzahl ignoriert. Standardmäßig wird Leerzeichen nicht ignoriert.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

TextMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputObject

Gibt die zu messenden Objekte an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte ermittelt.

Wenn Sie den InputObject-Parameter mit Measure-Object, anstelle von Befehlsergebnissen Measure-Objectan die Leitung, verwenden, wird der InputObject-Wert als einzelnes Objekt behandelt.

Es wird empfohlen, Measure-Object in der Pipeline zu verwenden, wenn Sie eine Auflistung von Objekten messen möchten, basierend darauf, ob die Objekte bestimmte Werte in definierten Eigenschaften aufweisen.

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Line

Gibt an, dass das Cmdlet die Anzahl der Zeilen in den Eingabeobjekten zählt.

Hinweis

Die Word, Char und Line Schalter zählen innerhalb jedes Eingabeobjekts sowie für Eingabeobjekte. Siehe Beispiel 7.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

TextMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Maximum

Gibt an, dass das Cmdlet den Maximalwert der angegebenen Eigenschaften anzeigt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GenericMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Minimum

Gibt an, dass das Cmdlet den Minimalwert der angegebenen Eigenschaften anzeigt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GenericMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Property

Gibt eine oder mehrere zu messende Eigenschaften an. Wenn Sie keine anderen Measures angeben, zählt Measure-Object die Objekte mit den von Ihnen angegebenen Eigenschaften.

Der Wert des Property-Parameters kann eine neue berechnete Eigenschaft sein. Die berechnete Eigenschaft muss ein Skriptblock sein. Weitere Informationen finden Sie unter about_Calculated_Properties.

Parametereigenschaften

Typ:

PSPropertyExpression[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-StandardDeviation

Gibt an, dass das Cmdlet die Standardabweichung der Werte der angegebenen Eigenschaften anzeigt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GenericMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Sum

Gibt an, dass das Cmdlet die Summe der Werte der angegebenen Eigenschaften anzeigt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GenericMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Word

Gibt an, dass das Cmdlet die Anzahl der Wörter in den Eingabeobjekten zählt.

Hinweis

Die Word, Char und Line Schalter zählen innerhalb jedes Eingabeobjekts sowie für Eingabeobjekte. Siehe Beispiel 7.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

TextMeasure
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

PSObject

Sie können Objekte an dieses Cmdlet weiterleiten.

Ausgaben

GenericMeasureInfo

Standardmäßig gibt dieses Cmdlet ein GenericMeasureInfo-Objekt zurück.

TextMeasureInfo

Wenn Sie den Word--Parameter verwenden, gibt dieses Cmdlet ein TextMeasureInfo--Objekt zurück.

Hinweise

PowerShell enthält die folgenden Aliase für Measure-Object:

  • Alle Plattformen:
    • measure

Ab PowerShell 7.3 gibt Measure-Object beim Verarbeiten eines Objekts, das die gemessene Eigenschaft fehlt, keinen Fehler mehr zurück, es sei denn, Sie werden in StrictMode-ausgeführt. In StrictMode-gibt Measure-Object eine System.Management.Automation.PSArgumentException zurück, wenn ein Objekt verarbeitet wird, das die angegebene Eigenschaft fehlt.