[t:/]$ 지식_

배치파일로 빌드버전 관리하기

2009/07/23

리눅스라면 셸 스크립트로 우주선도 쏠 수 있겠지만서도..
도스에서도 배치파일로 별걸 다 할 수 있다.

아래 배치파일은 오늘날짜, 현재시간, 빌드횟수를 헤더파일로 만들어준다.
임베디드 개발시 사용하는 IDE 의 프리빌드에 넣은 후 헤더로 사용하면 된다.

version.bat

for /f "tokens=1,2,3* delims=- " %%i in ('date/t') do set my_date=%%i%%j%%k
for /f "tokens=1 delims= " %%i in ('time/t') do set my_time1=%%i
for /f "tokens=2 delims=: " %%i in ('time/t') do set my_hour=%%i
for /f "tokens=3 delims=: " %%i in ('time/t') do set my_min=%%i

set my_time2=12

if %my_time1%==오전 set my_time2=0

set /a my_time=my_hour+my_time2
set my_time=%my_hour%%my_min%

for /f "tokens=1 delims=" %%i in ('type build_no.dat') do set /a build_no=%%i

if build_no==0 echo 0 > build_no.dat

set /a build_no=build_no+1

echo #define BUILD_DATE %my_date% >   build_data.h
echo #define BUILD_TIME %my_time% >>  build_data.h
echo #define BUILD_NO   %build_no% >> build_data.h

echo %build_no% > build_no.dat

결과물은..

#define BUILD_DATE 20090723   
#define BUILD_TIME 1040   
#define BUILD_NO   2   

BUILD_NO 은 빌드시마다 증가한다.
문자열 상수로 쓰지 않은 이유는 32비트값으로 바로 쌔리기 위함

정말 셸답게 쓰고 싶다면 시그윈을 깔지말고.
야후 위젯을 깔아서 필요한 유틸만 복사하는 편이 라이트하다.

참고 :

컴파일러 지원 내장 매크로 상수를 쓸 수도 있지만. 여기서는 BUILD_NO에 유의...
IAR 지원 __BUILD_NO__는 유니크 상수이며 증가 상수는 아니다.









[t:/] is not "technology - root". dawnsea, rss