#バッチファイル(コマンドプロンプト)で処理時間を計測する
バッチファイルで処理していた時間を計測する
直書きしてもいいけど
##定義
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