달룟님께 선물할 Smalltalk 이미지 백업 배치파일
@echo off
SETLOCAL
SET ST_IMG_HOME=F:\작업자료\프로그램\smalltalk\가계부
SET ST_BACKUP_DIR=F:\작업자료\프로그램\smalltalk
SET BACK_NAME=
FOR /F "tokens=1,2,3 delims=-" %%i IN ("%DATE%") DO SET BACK_NAME=%%i_%%j_%%k
FOR /F "tokens=1,2,3 delims=: " %%i in ('time /t') DO SET BACK_NAME=%BACK_NAME%_%%i_%%j_%%k.zip
alzip -a "F:\작업자료\프로그램\smalltalk\가계부\Community Edition.img","F:\작업자료\프로그램\smalltalk\가계부\Community Edition.sml","F:\작업자료\프로그램\smalltalk\가계부\Community Edition.chg" "F:\작업자료\프로그램\smalltalk\%ST_BACKUP_DIR%.zip"
ENDLOCAL
나도 알집을 쓰고 달룟님도 알집을 쓰신다고 해서 알집을 사용했는데 초반에 고생을 좀 했다.
퇴근 후 집에 와서 코딩을 했는데 집에 설치된 알집은 5.6버전이었다.
알집의 도움말을 통해서 커맨드라인 옵션을 보고 당연히 되겠구나 해서 코드를 짰는데 에러가 발생하였다...
아니 정확히 말하면 에러는 아니다. 화면에 아무 에러도 뱉어 내지 않았으니까.
단지 아무일도 일어 나지 않았다.
알집이 잠깐 떴다 바로 사라졌지만 디렉토리에 새로 생긴 압축파일이 안보이는 것이다.
몇번 더 테스트를 해보다 알집 최신 버전을 설치 하고 다시 테스트를 했더니 제대로 된다 -_-;;
오후에 서핑중에 보았던 알집에 대한 비판글이 조금은 이해가 됐다;;
이번 스크립트로 변수를 좀더 자유롭게 다룰수 있게 되었다.
정말정말 날 힘들게 했던 부분은 공백을 걸고 넘어지는 문제였다.
echo %ST_IMG_HOME%
이 코드가 에러를 뱉어 내는 이유를 한참 후에 알게 되었다.
'=' 양 옆의 공백이 문제였던 것이다....Orz=3
지금껏 내가 만져본 언어들 중에서 이 문제로 까다롭게 굴었던건 없었다....
이 녀석이 처음이다.... 역시 처음은 강렬하게 다가온다.....쩝...
SETLOCAL과 ENDLOCAL은 한쌍으로
SET으로 선언된 환경 변수를 지역변수로 제한하는 기능을 한다.
만약 SETLOCAL이 없으면 스크립트 실행 후 커맨드라인에서 SET 명령으로 현재 설정된 환경 변수를 보면
스크립트에서 지정한 환경변수가 그래도 살아있음을 확인 할 수 있다. 하지만 그 역시 콘솔을 닫아버리면 사라진다.
추가정보:
프롬프트에서 c:\>help 를 실행하면 사용할 수 있는 명령어들이 나오는데
c:\>cmd /? 를 실행하면 또다른 신선한 내용들이 나온다.
'Programing' 카테고리의 다른 글
스크립트언어의 재발견 (0) | 2007.03.09 |
---|---|
[펌]포인터 (0) | 2007.02.22 |
윈도우 스크립팅 걸음마 (3) | 2007.02.07 |
euc인코딩 (0) | 2007.01.09 |
위기지학(爲己之學) (0) | 2006.11.29 |