본문 바로가기

Code/기타

배치파일(.bat)에서 날짜 구해서 변수로 쓰기

자동화 스크립트를 짜면서, 날짜별로 파일을 생성하면 좋겠다고 생각해서,
짧게 구글링 후, 작업을 하였다.
카피해서 붙이면 된다고 하는데, 국가별로 날짜 표시 형식이 달라서 약간의 수정이 필요하였다.

코드는 다음과 같이 사용하면 된다.
FOR /F "TOKENS=1* DELIMS=-" %%A IN ('DATE/T') DO SET CDATE=%%A-%%B
FOR /F "TOKENS=1,2 DELIMS=- " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=2,3 DELIMS=- " %%A IN ('DATE/T') DO SET dd=%%B
FOR /F "TOKENS=1* DELIMS=-" %%A IN ('DATE/T') DO SET yyyy=%%A

echo %yyyy%%mm%%dd%_soft.pdf

TOKENS에서 토큰 순서대로 뒤에 변수에 들어가며, %%A라고 쓰는 건 파싱 되면서 %%->%로 파싱되기 때문이다.
즉, 첫번째 라인을 DATE/T를 실행해서 구분자 '-'로 잘라서 첫번째는 %A 에 나머지는 %B에 넣으라는 뜻이고,
두번째 라인은 DATE/T를 실행해서 구분자 '-'와 공백으로 잘라서 첫번째는 %A에 두번째 토큰은 %B에 넣으라는 게 된다. 만약, DATE/T가 2010-09-16으로 나오면, DO SET mm=09 가 실행되는 것이다.

도스는 쓰면 쓸수록 참 주먹구구라는 생각이 많이 든다. ㅋ

'Code > 기타' 카테고리의 다른 글

ubuntu를 이용한 CCTV 만들기  (0) 2011.04.18
우분투에 air video 설치하기  (1) 2011.04.05
엑셀로 역행렬 구하기  (0) 2010.09.08
엑셀에서 Scientific Notation  (0) 2010.06.10
Eclipse Setting - Latex 용  (0) 2009.09.07