윈도우 배치파일 실행시간 출력 방법

개요

배치파일은 여러모로 쓸모가 많습니다. 여러가지 명령어를 한꺼번에 처리하게 할수 있고, 용량도 작습니다. 또한 텍스트 에디터로 쉽게 편집 할 수있습니다. 더군다나 백신에서도 바이러스로 잘 검출되지도 않습니다.

이런 배치파일을 활용하는데 있어서 순식간에 끝나는 짧은 명령어들은 상관이 없지만 dism 이나 office 다운로드등 시간이 좀 걸리는 작업들은 시작, 끝, 걸린시간을 출력할수 있게 만들면 어떨까 하고 정리 해봤습니다.

배치파일

심플하지만 심플하지 않은 코드입니다. 처음 보는 분들은 이게 뭐지 하고 한참 들여다 봐도 모를수 있습니다. 그냥 참고만 하시고 활용하시면 됩니다. 저두 이해하는데 오래 걸렸습니다. 프로그램 하는 사람들은 나이가 들수록 이해가 늦습니다.

코드 샘플

rem 명령어 시작
set "startTime=%time: =0%"
rem 명령어 끝
set "endTime=%time: =0%"
rem 걸린시간 측정
for /f "tokens=1-3 delims=0123456789" %%i in ("%endTime%") do set "COLON=%%i" & set "DOT=%%k"
set "end=!endTime:%DOT%=%%100)100+1!" & set "start=!startTime:%DOT%=%%100)100+1!"
set /A "elap=((((10!end:%COLON%=%%100)60+1!%%100)-((((10!start:%COLON%=%%100)60+1!%%100)"
set /A "elap=!elap:-=8640000-!"
set /A "cc=elap%%100+100,elap/=100,ss=elap%%60+100,elap/=60,mm=elap%%60+100,hh=elap/60+100"
echo. 
echo. 
echo.                      배치파일 실행시간 측정
echo.                ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
echo.                ┃   시작된 시간 : %startTime%   ┃
echo.                ┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃
echo.                ┃   종료된 시간 : %endTime%   ┃
echo.                ┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃
echo.                ┃   소요된 시간 : %hh:~1%%COLON%%mm:~1%%COLON%%ss:~1%%DOT%%cc:~1%   ┃
echo.   

오피스 다운로드 예제

최신 오피스 리테일버전 다운로드 하는것을 예제로 수정해봤습니다. 기존 코드에 위에 코드 샘플을 추가한 것입니다. 아래 파일과 같은 폴더안에 setup.exe와 MS_Office2019_Retail.xml이 같이 있어야 합니다. 기존 뼈대에서 보기 좋게 시간부분을 수정했습니다.

@echo off
 pushd %~dp0
 mode con cols=70 lines=22
 color 1f
 title 오피스 최신 버전 다운로드
 setlocal enabledelayedexpansion
 cls
 echo.
 echo.
 echo.
 echo.
 echo.              오피스 최신버전 다운로드를 시작 합니다
 echo.
 echo.              시작 하시려면 아무키나 입력하세요..
 echo.
 echo.
 echo.
 echo.
 pause >nul
 cls
 color 5f
 title 오피스 최신버전 다운로드
 set "startTime=%time: =0%"
 echo.
 echo.
 echo.
 echo.
 echo.              오피스 최신버전을 다운로드 중입니다. 
 echo.
 echo.              인터넷 환경에 따라 걸리는 시간이 다릅니다. 
 echo. 
 echo.              인내심을 가지고 기다려 주세요. 
 echo.
 echo.
 echo.
 echo.
 echo.
 echo.
 setup.exe /download MS_Office2019_Retail.xml
 set "endTime=%time: =0%"
 cls
 title 오피스 다운로드 시간
 color 2f
 for /f "tokens=1-3 delims=0123456789" %%i in ("%endTime%") do set "COLON=%%i" & set "DOT=%%k"
 set "end=!endTime:%DOT%=%%100)100+1!" & set "start=!startTime:%DOT%=%%100)100+1!"
 set /A "elap=((((10!end:%COLON%=%%100)60+1!%%100)-((((10!start:%COLON%=%%100)60+1!%%100)"
 set /A "elap=!elap:-=8640000-!"
 set /A "cc=elap%%100+100,elap/=100,ss=elap%%60+100,elap/=60,mm=elap%%60+100,hh=elap/60+100"
 echo. 
 echo. 
 echo. 
 echo. 
 echo.                      오피스 최신버전 다운로드
 echo.              ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 echo.              ┃   시작된 시간 : %startTime:~0,2%시 %startTime:~3,2%분 %startTime:~6,2%초      ┃
 echo.              ┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃
 echo.              ┃   종료된 시간 : %endTime:~0,2%시 %endTime:~3,2%분 %endTime:~6,2%초      ┃
 echo.              ┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃
 echo.              ┃   소요된 시간 : %hh:~1%시간 %mm:~1%분 %ss:~1%초    ┃
 echo.              ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
 echo.
 echo.      작업이 완료 되었습니다. 아무키나 눌러주세요…
 pause >nul
 exit

테스트

위에 만들어진 오피스 다운로드 배치파일을 가지고 테스트 해봤습니다. 새벽시간이라 다운로드가 빠르네요.

샘플예제 다운로드

위에서 사용된 샘플예제입니다. 기존에 사용된 배치파일들도 이런식으로 전부 수정해야 겠습니다. 시간이 좀 걸리네요. 시간을 정확히 알수 있어서 좋네요.

3 thoughts on “윈도우 배치파일 실행시간 출력 방법”

    • 네^^ 프로그램으로 하는 방식은 프로그램 자체에 함수를 지원해서 그리 어렵지 않습니다만

      이 방법은 프로그램도 필요없고 배치파일에 응용해서 할수 있습니다.

      응답

Leave a Comment