Verwenden des Cmdlet \"Measure-Object\"

Berechnen von einfachen Statistiken

Mit dem Cmdlet Measure-Object können Sie für ein Objekt Statistiken erstellen (Anzahl, Durchschnitt, Summe, Mindest- und Höchstwerte). Beispiel: Nehmen wir an, Sie verwenden folgende Textdatei, in der Benutzernamen und deren Punktezahl aufgelistet sind (egal, wofür die Punkte vergeben werden):

Name,Score
Dan K. Bacon Jr.,64
Jean Philippe Bagel,89
Erzsébet Balázs,45
Martin Bankov,64
Peter Bankov,33
Angel Barbariol a,89
David Barber,88
Rob Barker,55
Miklós Barkóczi,86
Dave Barnett,56
Josh Barnhill,75
Adam Barr,33
Paula Barreto de Mattos,89
Gytis M. Barzdukas,62
Shai Bassli,87
Pilar Colome Bassols,24
Tomasz Bator,67
Shaun Beasley,77
Mark Bebbington,35
Anna Bedecs,78
Parry Bedi,86
Ann Beebe,64
Dick Beekman,74
Balázs Belinszki,79
Kostadin Belishky,55
Mason Bendixen,64
Almudena Benito,33
Ido Ben-Sachar,56
Wanida Benshoof,81

Nehmen wir weiterhin an, Sie möchten die Gesamtpunktzahl, die durchschnittliche Punktzahl sowie die höchste und niedrigste Punktzahl berechnen. Ob Sie es glauben oder nicht, das alles erhalten Sie mit einem einzigen Befehl:

Import-Csv c:\scripts\test.txt | Measure-Object score -ave -max -min

Der Befehl an sich ist recht unkompliziert. Wir verwenden das Cmdlet Import-Csv, um Daten aus dieser Textdatei zu importieren. Die Daten werden dann an das Cmdlet Measure-Object übergeben. Auf der linken Seite der Pipeline rufen wir Measure-Object auf, gefolgt vom Namen der Eigenschaft oder des Elements, für das die Statistiken erstellt werden sollen (in diesem Fall die Punktezahl). Beachten Sie dabei auch, das wir die Parameter –ave, -max und –min einbeziehen (–sum wird ausgelassen). Wichtig: Mit Ausnahme von "Count" (Anzahl der Elemente im Dataset) werden Ihnen nur die Statistiken ausgegeben, die Sie gesondert im Befehl eingefügt haben.

So sehen die entsprechenden Daten aus:

Count    : 29
Average  : 65.1034482758621
Sum      :
Maximum  : 89
Minimum  : 24
Property : Score

Beachten Sie, dass das Cmdlet Measure-Object nur für die Erstellung von Statistiken verwendet wird. Es kann Ihnen nicht die Teilnehmer ausgeben, die beispielsweise die fünf besten Punktzahlen erreicht haben. Für diese Art von Statistik müssen Sie die Daten sortieren und anschließend das Cmdlet Select-Object verwenden:

Import-Csv c:\scripts\test.txt | Sort-Object score -ascending | Select-Object -first 5

Und das gibt dieser Befehl zurück:

Name                                    Score
----                                    -----
Paula Barreto de Mattos                 89
Angel Barbariol a                       89
Jean Philippe Bagel                     89
David Barber                            88
Shai Bassli                             87

Sie können auch die fünf niedrigsten Punktzahlen bestimmen. Verwenden Sie einfach den gleichen Befehl, aber sortieren Sie aufsteigend (Standard), statt absteigend:

Import-Csv c:\scripts\test.txt | Sort-Object score | Select-Object -first 5

Vielleicht geht es ja hier um ein Golfturnier, bei dem diese fünf Teilnehmer tatsächlich ganz gut abgeschnitten haben:

Name                                    Score
----                                    -----
Pilar Colome Bassols                    24
Peter Bankov                            33
Almudena Benito                         33
Adam Barr                               33
Mark Bebbington                         35