Преобразование времени 121.419419 в считываемые минуты / секунды - PullRequest
6 голосов
/ 05 января 2012

Я хотел бы рассчитать время выполнения моего скрипта, но мой результат из get-date находится в полных секундах.

Как я могу преобразовать это в 31:14:12 behing часы: минуты: секунды?

Ответы [ 2 ]

13 голосов
/ 05 января 2012
PS> $ts = New-TimeSpan -Seconds 1234567
PS> '{0:00}:{1:00}:{2:00}' -f $ts.Hours,$ts.Minutes,$ts.Seconds
06:56:07

или

PS> "$ts" -replace '^\d+?\.'
06:56:07
8 голосов
/ 06 января 2012

Все, что вам нужно сделать, это использовать командлет Measure-Command, чтобы получить время:

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

Приведенный выше вывод сам по себе может быть достаточно для вас, или вы можете соответствующим образом отформатировать его как выводMeasure-Command - это объект TimeSpan.Или вы можете использовать ToString:

PS > (measure-command { sleep 125}).tostring()
00:02:05.0017446
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...