Verwenden des Cmdlet \"Measure-Command\"

Messen der Ausführungszeit eines Skripts oder Befehls

Was auch sonst noch geschieht, Anwender befassen sich oft mit der Ausführungszeit von Skripts und Befehlen. Wenn Sie schon immer wissen wollten, wie lange es dauert, eine bestimmte Aufgabe auszuführen, dann ist das Cmdlet Measure-Command genau das Richtige für Sie: Damit können Sie die Ausführungszeit eines Befehls oder Skripts bis auf die Millisekunde genau messen. (Tatsächlich können Sie mit diesem Cmdlet die Ausführungszeit genauer als auf die Millisekunde genau messen. Doch das ist erst mal nicht wichtig...)

Um Measure-Command zu verwenden, rufen Sie einfach das entsprechende Cmdlet auf. Geben Sie dazu den Befehl ein bzw. führen Sie das Skript aus, das als Cmdlet-Parameter festgelegt ist (stellen Sie dabei sicher, dass der Wert in geschweifte Klammern eingeschlossen ist). Mit folgendem Befehl beispielsweise führen Sie das Cmdlet Get-Service aus, das anschließend die Daten in die XML-Datei "C:\Scripts\Test.xml" exportiert. Gleichzeitig wird auch die Zeit gemessen, die der Befehl für seine Ausführung benötigt:

Measure-Command {Get-Service | Export-Clixml c:\scripts\test.xml}

Wenn Sie diesen Befehl ausführen, werden in der Datei "Test.xml" Dienstinformationen gespeichert. Zusätzlich erhalten Sie durch Measure-Command Angaben, die in etwa so aussehen:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 980
Ticks             : 9807034
TotalDays         : 1.13507337962963E-05
TotalHours        : 0.000272417611111111
TotalMinutes      : 0.0163450566666667
TotalSeconds      : 0.9807034
TotalMilliseconds : 980.7034

Um diese Aufgabe mit einem Skript auszuführen, übergeben Sie den Namen des entsprechenden Skripts als Measure-Command-Parameter. Mit dem folgenden Befehl führen Sie das Skript "C:\Scripts\Test.ps1" aus, und Sie erhalten zusätzlich noch die Ausführungszeit:

Measure-Command {c:\scripts\test.ps1}

Und Folgendes wird uns angezeigt:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 971
Ticks             : 9717422
TotalDays         : 1.12470162037037E-05
TotalHours        : 0.000269928388888889
TotalMinutes      : 0.0161957033333333
TotalSeconds      : 0.9717422
TotalMilliseconds : 971.7422

Wie Sie sehen, gibt es zumindest in diesem Fall keinen wirklichen Unterschied zwischen dem Ausführen eines Befehls über die Windows PowerShell-Konsole und dem Ausführen des gleichen Befehls mithilfe eines Windows PowerShell-Skripts.