Measures the time it takes to run script blocks and cmdlets.
Measure-Command [-Expression*] <ScriptBlock> [-InputObject [<PSObject>]] [<CommonParameters>]

The Measure-Command cmdlet runs a script block or cmdlet internally, times the execution of the operation, and returns the execution time.

-Expression <ScriptBlock>

  • This value is required

Specifies the expression that is being timed. Enclose the expression in braces ({}). The parameter name (“Expression”) is optional.

-InputObject [<PSObject>]

Specifies objects representing the expressions to be measured. Enter a variable that contains the objects or type a command or expression that gets the objects.


This cmdlet supports the common parameters: Verbose, Debug,ErrorAction, ErrorVariable, WarningAction, WarningVariable,OutBuffer, PipelineVariable, and OutVariable.



You can pipe an object to Measure-Command.


System.TimeSpan Measure-Command returns a time span object that represents the result.

  1. Measure the time to run a command:
    PS C:> Measure-Command { Get-EventLog "windows powershell" }

    This command measures the time it takes to run a Get-EventLog command that gets the events in the Windows PowerShell event log.

  2. Use a provider-specific filter:
    PS C:> 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.2763PS C:>Measure-Command {Get-ChildItem C:Windows -Filter "*.txt" -Recurse}
    PS C:>
    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

    These commands show the value of using a provider-specific filter in Windows PowerShell commands.

    The first command measures the time it takes to process a recursive Get-ChildItem command that uses the Path parameter to get only .txt files in the C:Windows directory and its subdirectories.

    The second command measures the time it takes to process a recursive Get-ChildItem command that uses the provider-specific Filter parameter.

Additional Notes
 For more information, type Get-Help Measure-Command -detailed. For technical information, type Get-Help 
 Measure-Command -full.

 When specifying multiple values for a parameter, use commas to separate the values. For example, 
 , .
Related Links