pwsh/Measure-Execution.ps1
Set-Alias -Name time -Value Measure-Execution function Measure-Execution { [CmdletBinding()] param( [Parameter(Mandatory, Position=0)] [ValidateScript({![String]::IsNullOrEmpty($_)})] [ScriptBlock[]]$ScriptBlock, [Parameter()] [ValidateRange(1, 3000)] [UInt16]$Count = 1, [Parameter()] [ValidateSet('Basic', 'Pretty')] [String]$Format = 'Basic' ) end { for ($i = 0; $i -lt $ScriptBlock.Length; $i++) { [Console]::Write("`e[36;1mTesting block[$($i + 1)]`e[0m") $t = 0..$Count | Measure-Command -Expression $ScriptBlock[$i] ("`r`e[33;1mTotal ms`e[0m: $($t.TotalMilliseconds)", "`r`e[33;1mTotal tm`e[0m: $($t.ToString('G'))" )[$Format -eq 'Pretty'] } } } Export-ModuleMember -Alias time -Function Measure-Execution |