Todo lo que tiene que hacer es usar el cmdlet Measure-Command
para obtener el tiempo:
PS > measure-command { sleep 5}
Days : 0
Hours : 0
Minutes : 0
Seconds : 5
Milliseconds : 13
Ticks : 50137481
TotalDays : 5.80294918981481E-05
TotalHours : 0.00139270780555556
TotalMinutes : 0.0835624683333333
TotalSeconds : 5.0137481
TotalMilliseconds : 5013.7481
El mismo resultado anterior podría ser lo suficientemente bueno para usted, o usted puede formatearlo apropiadamente ya que la salida de Measure-Command es un objeto TimeSpan. O puede usar ToString
:
PS > (measure-command { sleep 125}).tostring()
00:02:05.0017446
Muchas gracias Shay! Terminé haciendo lo siguiente: $ start = (get-date) Write-Host "Guión empezaban a $ start" para ($ i = 1; i $ -lt 5; $ i ++) { Get- proceso | fuera nula del sueño 1 echo "Mi script va aquí Déjame contar a 5 para usted:. $ i" } $ final = (Get-Date) $ lapso de tiempo = new-lapso de tiempo -seconds $ (($ end- $ start) .totalseconds) $ elapsed = '{0:00} h: {1:00} m: {2:00} s' -f $ timespan.Hours, $ timespan.Minutes, $ timespan. Segundos write-host "Tiempo: $ transcurrido" – Sune
(¿ese comentario es incluso legible?) – Sune
Sí, básicamente obtiene la fecha de inicio y finalización y resta una forma de otra, el resultado es un objeto de intervalo de tiempo que puede formatear utilizando -f operator (ej. $ timespan = $ start- $ end; '{0:00}: {1:00}: {2:00}' -f $ ts.Hours, $ ts.Minutos, $ ts.Segundos) . –