Zählen und Messen mit PowerShell

Die Commandlets “Measure-Command” und “Measure-Object” sind kleine Helfer, die ich häufiger in Scripten nutze. In einem einfachen Beispiel zeige ich, wie beide Commandlets genutzt werden können.

Laufen Scripte länger, so ist es manchmal hilfreich die tatsächliche Dauer der Laufzeit von Scripten, Methoden oder einzelnen Commandlets zu kennen.

Ganz einfach geht dies mit “Measure-Command”. Alle, sich in diesem Scriptblock befindlichen Anweisungen, werden gemessen.

Beispiel:

measure-command {get-service | export-csv c:\services.csv}

Mit dem vorgenannten Script lasse ich mir alle Dienste auf meinem Rechner in eine CSV Datei schreiben.

Viel interessanter ist jedoch das “Measure-Command”. Es gibt mir nach Ausführung die Infos zur Laufzeit:

image

Das finde ich schon sehr hilfreich. Weitere Infos gibt’s dazu unter https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/measure-command

Tipp: Wenn Scripte länger laufen und ich daher mehrere Scripte parallel starte, setze ich mir den Titel des PowerShell Fensters, damit ich auch weiß, was hier gerade ausgeführt wird. Im o.g. Screenshot setze ich den Titel auf “Standort Ahaus” mittels:

$host.ui.RawUI.WindowTitle = “Standort Ahaus”

Mittels “Measure-Object” kann ich nun einfach die Zeilen in der CSV Datei zählen

Beispiel:

import-csv C:\Services.csv | Measure-Object

image

Neben dem reinen “Zählen” von Objekten kann Measure-Object noch wesentlich mehr.

Auch hier lohnt sich der Blick in die Doku: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/measure-object

Leave a Comment

Your email address will not be published. Required fields are marked *