2012-01-05 13 views

答えて

13
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 
+1

ありがとうシェイ!私は、次のことをやってしまった: $(取得-日付)=開始 書き込みホスト "スクリプトを$スタートで開始"($ I = 1 $ iが++; $ iが5を-lt)のための GET-を{プロセス|アウトヌル 睡眠1 エコー "私のスクリプトをここに私はあなたのために5まで数えてみましょう:。$ i" の } $エンド=(取得-日) $タイムスパン=新しいタイムスパン-seconds $(($ $ elapsed = '{0:00} h:{1:00} m:{2:00} s' -f $ timespan.Hours、$ timespan.Minutes、$ timespan。 write-host "Time:$ elapsed" – Sune

+0

(このコメントは読み込みも可能ですか?) – Sune

+2

はい、基本的に開始日と終了日を取得し、別のフォームを減算します。結果はtimespanオブジェクトで、 -f演算子(例:$ timespan = $ start- $ end; '{0:00}:{1:00}:{2:00}' -f $ ts.Hours、$ ts.Minutes、$ ts.Seconds) 。 –

7

あなたがしなければならないのは、時間を取得するために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 
+0

偉大な答え。私はこの同じ問題を抱えていて、.toString()にはスポットがありました。私にとっては、メジャーコマンド自体から毎回値を解析するか、時間タイプを変換するよりも優れていました。ありがとう! – tresstylez

関連する問題