Measure-Object
Berechnet die numerischen Eigenschaften von Objekten und die Zeichen, Wörter und Zeilen in Zeichenfolgenobjekten, z. B. Textdateien.
Syntax
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-StandardDeviation]
[-Sum]
[-AllStats]
[-Average]
[-Maximum]
[-Minimum]
[<CommonParameters>]
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-Line]
[-Word]
[-Character]
[-IgnoreWhiteSpace]
[<CommonParameters>]
Beschreibung
Das Measure-Object
Cmdlet berechnet die Eigenschaftswerte bestimmter Objekttypen.
Measure-Object
führt abhängig von den Parametern im Befehl drei Arten von Messungen aus.
Das Measure-Object
Cmdlet führt Berechnungen für die Eigenschaftswerte von Objekten aus. Sie können verwenden Measure-Object
, um Objekte zu zählen oder Objekte mit einer angegebenen Eigenschaft zu zählen. Sie können auch verwenden Measure-Object
, um die Werte Minimum, Maximum, Sum, StandardDeviation und Average der numerischen Werte zu berechnen. Für String-Objekte können Sie auch verwenden Measure-Object
, um die Anzahl von Zeilen, Wörtern 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 gezählt.
Get-ChildItem | Measure-Object
Beispiel 2: Messen der Dateien in einem Verzeichnis
Mit diesem Befehl werden minimum, Maximum und Sum der Größen aller Dateien im aktuellen Verzeichnis und 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
Mit diesem Befehl wird die Anzahl der Zeichen, Wörter und Zeilen in der Datei „Text.txt“ angezeigt.
Ohne den Raw-Parameter 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: Measureobjekte, die eine angegebene Eigenschaft enthalten
In diesem Beispiel wird die Anzahl der Objekte mit einer DisplayName-Eigenschaft gezählt. 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 leitet das Ergebnis an .Measure-Object
Das System.Diagnostics.Process-Objekt verfügt nicht über eine DisplayName-Eigenschaft und wird bei der endgültigen Anzahl nicht berücksichtigt.
$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 wird die durchschnittliche Betriebszugehörigkeit der Mitarbeiter eines Unternehmens berechnet.
Die ServiceYrs.csv
Datei ist eine CSV-Datei, die die Mitarbeiterzahl und die Dienstjahre jedes Mitarbeiters enthält. Die erste Zeile in der Tabelle ist eine Kopfzeile von EmpNo, Years.
Wenn Sie zum Importieren der Datei verwenden Import-Csv
, ist das Ergebnis ein PSCustomObject mit den Eigenschaften EmpNo und Years.
Sie können verwenden Measure-Object
, um die Werte dieser Eigenschaften zu berechnen, genau wie jede andere Eigenschaft eines Objekts.
Import-Csv d:\test\serviceyrs.csv | Measure-Object -Property years -Minimum -Maximum -Average
Beispiel 6: Messen boolescher Werte
In diesem Beispiel wird veranschaulicht, wie boolesche Measure-Object
Werte gemessen werden können.
In diesem Fall wird die booleschePSIsContainer-Eigenschaft verwendet, um die Inzidenz von Ordnern (im Vergleich zu 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 mithilfe von scriptblock-Eigenschaften
Ab PowerShell 6 Measure-Object
unterstützt ScriptBlock-Eigenschaften . Im folgenden Beispiel wird veranschaulicht, wie eine ScriptBlock-Eigenschaft verwendet wird, um die Größe aller Dateien in einem Verzeichnis in Megabyte zu bestimmen.
Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}
Beispiel 10: Messen von Hashtabellen
Ab PowerShell 6 Measure-Object
unterstützt die Messung von Hashtabelleneingaben . Im folgenden Beispiel wird der größte Wert für den num
Schlüssel von 3 Hashtabellenobjekten 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 Measure-Object
unterstützt den -StandardDeviation
-Parameter. 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 Measure-Object
unterstützt die Messung von Objekten mithilfe von Platzhaltern in Eigenschaftennamen. Im folgenden Beispiel wird die maximale Auslagerungsspeicherauslastung für eine 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Average
Gibt an, dass das Cmdlet den Durchschnittswert der angegebenen Eigenschaften anzeigt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Character
Gibt an, dass das Cmdlet die Anzahl der Zeichen in den Eingabeobjekten zählt.
Hinweis
Die Schalter Word, Char und Line zählen sowohl innerhalb jedes Eingabeobjekts als auch zwischen Eingabeobjekten. Siehe Beispiel 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IgnoreWhiteSpace
Gibt an, dass das Cmdlet Leerzeichen bei der Zeichenanzahl ignoriert. Leerzeichen werden standardmäßig nicht ignoriert.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Gibt die Objekte an, die gemessen werden sollen. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.
Wenn Sie den InputObject-Parameter mit Measure-Object
verwenden, anstatt Befehlsergebnisse an zu Measure-Object
leiten, wird der InputObject-Wert als einzelnes Objekt behandelt.
Es wird empfohlen, die Verwendung in der Pipeline zu verwenden Measure-Object
, wenn Sie eine Auflistung von -Objekten basierend darauf messen möchten, ob die Objekte bestimmte Werte in definierten Eigenschaften aufweisen.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Line
Gibt an, dass das Cmdlet die Anzahl der Zeilen in den Eingabeobjekten zählt.
Hinweis
Die Schalter Word, Char und Line zählen sowohl innerhalb jedes Eingabeobjekts als auch zwischen Eingabeobjekten. Siehe Beispiel 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Maximum
Gibt an, dass das Cmdlet den Maximalwert der angegebenen Eigenschaften anzeigt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minimum
Gibt an, dass das Cmdlet den Mindestwert der angegebenen Eigenschaften anzeigt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
Gibt eine oder mehrere zu messende Eigenschaften an. Wenn Sie keine anderen Measures angeben, Measure-Object
zählt die Objekte, die über die von Ihnen angegebenen Eigenschaften verfügen.
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.
Type: | PSPropertyExpression[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-StandardDeviation
Gibt an, dass das Cmdlet die Standardabweichung der Werte der angegebenen Eigenschaften anzeigt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Sum
Gibt an, dass das Cmdlet die Summe der Werte der angegebenen Eigenschaften anzeigt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Word
Gibt an, dass das Cmdlet die Anzahl der Wörter in den Eingabeobjekten zählt.
Hinweis
Die Schalter Word, Char und Line zählen sowohl innerhalb jedes Eingabeobjekts als auch zwischen Eingabeobjekten. Siehe Beispiel 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können Objekte an dieses Cmdlet übergeben.
Ausgaben
Standardmäßig gibt dieses Cmdlet ein GenericMeasureInfo-Objekt zurück.
Wenn Sie den parameter Word 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 bei der Verarbeitung eines Objekts, dem die gemessene Eigenschaft fehlt, kein Fehler mehr zurück, es sei denn, Measure-Object
Sie führen in StrictMode aus. Gibt in StrictMode bei der Verarbeitung eines Objekts, Measure-Object
dem die angegebene Eigenschaft fehlt, zurück System.Management.Automation.PSArgumentException
.