Microsoft.PowerShell_profile
function Measure-Command2 ([scriptblock]$Expression, [int]$Samples = 1, [Switch]$Silent) {
$timings = @()
do {
$sw = New-Object Diagnostics.Stopwatch
if ($Silent) {
$sw.Start()
$null = & $Expression
$sw.Stop()
Write-Host "." -NoNewline
}
else {
$sw.Start()
& $Expression
$sw.Stop()
}
$timings += $sw.Elapsed
$Samples--
} while ($Samples -gt 0)
if ($Silent) {
Write-Host
}
$stats = $timings | Measure-Object -Average -Minimum -Maximum -Property Ticks
Write-Host "Avg:`t$(New-Object System.TimeSpan $stats.Average)"
Write-Host "Min:`t$(New-Object System.TimeSpan $stats.Minimum)"
Write-Host "Max:`t$(New-Object System.TimeSpan $stats.Maximum)"
}
Set-Alias time Measure-Command2