
배치파일에서 오늘 날짜를 구하는 방법은 상당히 간단하다.
date라는 명령을 이용해서 구할 수도 있지만 간단히
%DATE%라는 환경 변수를 이용해서 구할 수도 있다. 물론
%DATE% 환경 변수는 모든 시스템에서 사용할 수 있는 것은 아니다. 그러나 XP 기반의 OS에서는 모두 사용할 수 있으므로 큰 문제는 없다고 본다. 명령행에서
echo %DATE%
명령을 실행해보면 알 수 있지만
%DATE%는
YYYY-MM-DD 형태로 날짜를 출력한다. 만약 출력되는 날짜 형식을 변경하고 싶다면 다음과 같은 간단한 배치 파일로 이 문제를 해결할 수 있다.
[today.cmd]
@echo off
for /f "tokens=1-3 delims=- " %%A in ('echo %DATE%')
do (set YY=%%A&SET MM=%%B&SET DD=%%C)
echo %YY%, %MM%, %DD%
만약 배치 파일에서 어제나 내일의 날짜를 구하고 싶은 경우에는 어떻게 할까?
%DD%에서 하루만 빼면 될 것 같지만 사실 그리 간단하지는 않다. 생각해보면 쉽다. 오늘 날짜가 2월 2일이라면 %DD%에서 하루만 빼면된다. 그러나 2월 1일이라면 어제는 1월 31일이므로 %MM%에서도 1를 빼야한다. 만약 1월 1일이라면 어떻게 될까? 이때는 %DD%, %MM%, %YY%에서 1을 빼야한다.