【Batch】処理時間計測(補助)バッチファイル【備忘録】

  • 27
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

バッチファイル(コマンドプロンプト)で処理時間を計測する

バッチファイルで処理していた時間を計測する
直書きしてもいいけど

定義

worktime.bat
@echo off

if "%1" == "START"  goto BEGIN
if "%1" == "STOP"   goto END
if "%1" == "PRINT"  goto PRINT
goto EOF

:BEGIN
SET T=%TIME: =0%
SET H=%T:~0,2%
SET M=%T:~3,2%
SET S=%T:~6,2%
SET L=%T:~9,2%

rem --8進対策
set /a H=1%H%-100
set /a M=1%M%-100
set /a S=1%S%-100
goto EOF

:END
SET T1=%TIME: =0%
SET H1=%T1:~0,2%
SET M1=%T1:~3,2%
SET S1=%T1:~6,2%
SET L1=%T1:~9,2%

rem --8進対策
set /a H1=1%H1%-100
set /a M1=1%M1%-100
set /a S1=1%S1%-100
rem --終了時間の計算
SET /a H2=H1-H

SET /a M2=M1-M
if %M2% LSS 0 set /a H2=H2-1
if %M2% LSS 0 set /a M2=M2+60

SET /a S2=S1-S
if %S2% LSS 0 set /a M2=M2-1
if %S2% LSS 0 set /a S2=S2+60

SET /a L2=L1-L
if %L2% LSS 0 set /a S2=S2-1
if %L2% LSS 0 set /a L2=L2+100

rem 二けた強制表示
rem if %L2% LSS 10 set L2=0%L2%

SET /a DPS=%H2%*3600+%M2%*60+%S2%
SET DPS2=%DPS%.%L2%

set DPS_STAMP=%H2%:%M2%:%S2%
set DPS_STAMP2=%DPS_STAMP%.%L2%

goto EOF

:PRINT 
echo 開始時間:%T%
echo 終了時間:%T1%
echo 経過時間:%DPS_STAMP%
echo 経過秒数:%DPS2%
:EOF

使い方

パターン1

test.bat
rem 計測開始
call worktime.bat START

rem 何か処理

rem 計測終了
call worktime.bat STOP

rem 表示
call worktime.bat PRINT

パターン2

test2.bat

rem 計測開始
call worktime.bat START

rem 何か処理

rem 計測終了
call worktime.bat STOP

rem 経過時間の取得
echo %DPS_STAMP%

rem 経過秒数だけ取得
echo %DPS%

rem 経過秒数の取得
echo %DPS2%


出力

パターン1

開始時間:19:27:28.66
終了時間:19:27:32.89
経過時間:0:0:4.23
経過秒数:4.23

パターン2

0:8:26
506
506.27

参考

http://rikutoto.blogspot.jp/2013/06/windows.html