我想计算我的脚本运行的时间,但是我的get-date结果总共为二秒。将时间121.419419转换为可读的分钟数/秒
我该如何将其转换为31:14:12 behing hours:minutes:seconds?
我想计算我的脚本运行的时间,但是我的get-date结果总共为二秒。将时间121.419419转换为可读的分钟数/秒
我该如何将其转换为31:14:12 behing hours:minutes:seconds?
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
所有你需要做的就是使用Measure-Command
cmdlet来获取时间:
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
很好的答案。我有这个相同的问题,并且.toString()是现货。对我来说,最好是从测量命令本身解析出每个时间值或转换时间类型。谢谢! – tresstylez 2013-06-21 23:52:50
非常感谢你谢伊!最后我做了以下内容: $启动=(获得最新) 写主机 “脚本开始在$开始” 为($ i = 1; $ I -lt 5; $ I ++){ GET-过程|出空 睡眠1 回声“我的剧本要在这里让我数到5给你:$ I” } $结束=(获取最新) $时间跨度=新的入库时间-seconds $(($ $ startpan).totalseconds) $ elapsed ='{0:00} h:{1:00} m:{2:00} s'-f $ timespan.Hours,$ timespan.Minutes,$ timespan。秒 write-host“Time:$ elapsed” – Sune 2012-01-05 19:05:41
(该评论甚至可读吗?) – Sune 2012-01-05 19:05:56
是的,基本上你会得到开始日期和结束日期,并减去另一个表单,结果是一个时间跨度对象,您可以使用-f运算符(例如$ timespan = $ start- $ end;'{0:00}:{1:00}:{2:00}'-f $ ts.Hours,$ ts.Minutes,$ ts.Seconds) 。 – 2012-01-05 21:09:56