프로그래밍

[batch] console 프로그램 실행시간 구하기

브라이언7 2018. 1. 6. 14:14

[batch] console 프로그램 실행시간 구하기


[출처] https://code.i-harness.com/en/q/b4916


@echo off
setlocal

rem Remeber start time. Note that we don't look at the date, so this
rem calculation won't work right if the program run spans local midnight.
set t0=%time: =0%

rem do something here.... but probably with more care about quoting.
rem specifically, odd things will happen if any arguments contain 
rem precent signs or carets and there may be no way to prevent it.
call %*

rem Capture the end time before doing anything else
set t=%time: =0%

rem make t0 into a scaler in 100ths of a second, being careful not 
rem to let SET/A misinterpret 08 and 09 as octal
set /a h=1%t0:~0,2%-100
set /a m=1%t0:~3,2%-100
set /a s=1%t0:~6,2%-100
set /a c=1%t0:~9,2%-100
set /a starttime = %h% * 360000 + %m% * 6000 + 100 * %s% + %c%

rem make t into a scaler in 100ths of a second
set /a h=1%t:~0,2%-100
set /a m=1%t:~3,2%-100
set /a s=1%t:~6,2%-100
set /a c=1%t:~9,2%-100
set /a endtime = %h% * 360000 + %m% * 6000 + 100 * %s% + %c%

rem runtime in 100ths is now just end - start
set /a runtime = %endtime% - %starttime%
set runtime = %s%.%c%

echo Started at %t0%
echo Ended   at %t%
echo Ran for %runtime%0 ms


나는 위와 같이 timer.bat 파일을 만들었다.

원문과 달라진 부분은 call 명령어를 써서 배치 파일을 호출하고 나서 계속 실행되도록 한 점과 Ended at ... 으로 종료 시각까지 표시해 준 점이다.