배치 파일에서 시(hour)를 두 자리로 표시하기

얼마전 배치 파일을 만들 일이 생겼습니다. 배치 파일 만들 일이 거의 없으니 역시 구글신께 계시를.

그런데 한 가지 문제가 있습니다. 날짜는 항상 ‘2012-01-01′ 이런 형식이니 문제 없는데 시각은 좀 다릅니다. 24시간제로 표시하는데 오전에는 ‘ 1:00:00,’ 오후에는 ’13:00:00′ 이런 식입니다. 즉 오전에는 시(hour) 부분에 공백 문자가 있습니다. 이렇다 보니 ‘2012-01-01_ 1:00:00′ 이렇게 표시하기도 해 보기 안 좋더군요. 그래서 시 부분을 두 자릿수로 표시하는 간단한 팁입니다. 중요 부분은 강조 표시한 4, 5번 줄입니다.


@ECHO OFF
SETLOCAL

SET HOUR=%TIME:~0,2%
IF "%HOUR:~0,1%" == " " SET HOUR=0%HOUR:~1,1%
SET T=%HOUR%%TIME:~3,2%%TIME:~6,2%
SET D=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
SET DATETIME=%D%_%T%

ECHO %DATETIME%

결과는 다음과 같습니다.

Date & Time Batch