Measure-Command
Mesure le temps nécessaire pour exécuter des applets de commande et des blocs de script.
Syntax
Measure-Command
[-InputObject <PSObject>]
[-Expression] <ScriptBlock>
[<CommonParameters>]
Description
L’applet Measure-Command
de commande exécute un bloc de script ou une applet de commande en interne, timese l’exécution de l’opération et retourne l’heure d’exécution.
Notes
Les blocs de script exécutés par Measure-Command
exécution dans l’étendue actuelle, et non une étendue enfant.
Exemples
Exemple 1 : Mesurer une commande
Cet exemple mesure le temps nécessaire à l’exécution d’une Get-EventLog
commande qui obtient les événements dans le journal des événements Windows PowerShell.
Measure-Command { Get-EventLog "windows powershell" }
Exemple 2 : comparer deux sorties de Measure-Command
La première commande mesure le temps nécessaire pour traiter une commande récursive Get-ChildItem
qui utilise le paramètre Path pour obtenir uniquement .txt
les fichiers du C:\Windows
répertoire et de ses sous-répertoires.
La deuxième commande mesure le temps nécessaire pour traiter une commande récursive Get-ChildItem
qui utilise le paramètre ' spécifique au fournisseur.
Ces commandes montrent la valeur de l’utilisation d’un filtre spécifique au fournisseur dans les commandes PowerShell.
Measure-Command { Get-ChildItem -Path C:\Windows\*.txt -Recurse }
Days : 0
Hours : 0
Minutes : 0
Seconds : 8
Milliseconds : 618
Ticks : 86182763
TotalDays : 9.9748568287037E-05
TotalHours : 0.00239396563888889
TotalMinutes : 0.143637938333333
TotalSeconds : 8.6182763
TotalMilliseconds : 8618.2763
Measure-Command {Get-ChildItem C:\Windows -Filter "*.txt" -Recurse}
Days : 0
Hours : 0
Minutes : 0
Seconds : 1
Milliseconds : 140
Ticks : 11409189
TotalDays : 1.32050798611111E-05
TotalHours : 0.000316921916666667
TotalMinutes : 0.019015315
TotalSeconds : 1.1409189
TotalMilliseconds : 1140.9189
Exemple 3 : Canalisation d’une entrée vers Measure-Command
Les objets dirigés vers Measure-Command
sont disponibles pour le bloc de script passé au paramètre Expression . Le bloc de script est exécuté une fois pour chaque objet sur le pipeline.
# Perform a simple operation to demonstrate the InputObject parameter
# Note that no output is displayed.
10, 20, 50 | Measure-Command -Expression { for ($i=0; $i -lt $_; $i++) {$i} }
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 12
Ticks : 122672
TotalDays : 1.41981481481481E-07
TotalHours : 3.40755555555556E-06
TotalMinutes : 0.000204453333333333
TotalSeconds : 0.0122672
TotalMilliseconds : 12.2672
Exemple 4 : Affichage de la sortie de la commande mesurée
Pour afficher la sortie de l’expression dans Measure-Command
, vous pouvez utiliser un canal vers Out-Default
.
# Perform the same operation as above adding Out-Default to every execution.
# This will show that the ScriptBlock is in fact executing for every item.
10, 20, 50 | Measure-Command -Expression {for ($i=0; $i -lt $_; $i++) {$i}; "$($_)" | Out-Default }
10
20
50
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 11
Ticks : 113745
TotalDays : 1.31649305555556E-07
TotalHours : 3.15958333333333E-06
TotalMinutes : 0.000189575
TotalSeconds : 0.0113745
TotalMilliseconds : 11.3745
Exemple 5 : Mesure de l’exécution dans une étendue enfant
Measure-Command
exécute le bloc de script dans l’étendue actuelle, afin que le bloc de script puisse modifier des valeurs dans l’étendue actuelle. Pour éviter les modifications apportées à l’étendue actuelle, vous devez encapsuler le bloc de script dans des accolades ({}
) et utiliser l’opérateur d’appel (&
) pour exécuter le bloc dans une étendue enfant.
$foo = 'Value 1'
$null = Measure-Command { $foo = 'Value 2' }
$foo
$null = Measure-Command { & { $foo = 'Value 3' } }
$foo
Value 2
Value 2
Pour plus d’informations sur l’opérateur d’appel, consultez about_Operators.
Paramètres
-Expression
Spécifie l'expression à chronométrer. Placez l’expression dans des accolades ({}
).
Type: | ScriptBlock |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Les objets liés au paramètre InputObject sont des entrées facultatives pour le bloc de script passé au paramètre Expression . À l’intérieur du bloc de script, $_
peut être utilisé pour référencer l’objet actuel dans le pipeline.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Entrées
Vous pouvez diriger un objet vers Measure-Command
.
Sorties
Measure-Command
retourne un objet d’intervalle de temps qui représente le résultat.