'Batch'에 해당되는 글 1건

  1. 2009.01.05 배치파일활용01 - 날짜단위 폴더,파일 만들기
컴퓨터2009.01.05 16:17

우연히 웹사이트를 돌아다니다가 배치파일에서 날짜를 이용해서 파일이나 폴더 이름을 만드는 것을 문의하는 글을 보았습니다. 배치파일에서 날짜를 뽑아내는(?) 부분은 어렵지 않습니다. 다만 사용하는 OS 의 버젼에 따라 날짜가 다르게 출력되기 때문에 모든 배치파일이 OS 버젼에 따라 조금은 다르게 만들어야 합니다.

저도 많이 아는것은 아니지만 배치파일에 대해서 많은 분들이 어렵게 생각하시는 부분에 대해서 참고하실 수 있도록 정리를 합니다.

날짜처리를 위한 배치파일의 예

Set %Today% = %date%
Mkdir C:\%Today%
Echo 파일 만들기 > C:\%Today%\%Today%.txt

위의 배치파일을 실행할 경우 C:\2009-01-05 라는 폴더가 생성되고, C:\2009-01-05\2009-01-05.txt 에는 "파일 만들기" 라는 문장이 저장이 됩니다.

다만, 사용하는 윈도우가 2000 이라면 결과는 약간 다르게 나옵니다.

윈도우 2000

윈도우 2000 실행결과

윈도우 2003

윈도우 2003 실행결과

vista

윈도우 vista 실행결과


이렇기 때문에 동일한 배치파일로 모든 버젼의 OS 에서 동일하게 작동하려면 버젼에 따라 다르게 동작을 해야 합니다.

윈도우 2000 에서의 날짜를 가져오면 다음과 같이 나옵니다.

숫자로된 부분만 원하는 값이기 때문에 요일에 해당하는 값을 빼야 하고, 추가적으로 숫자사이의 구분을 위해 사용된 "-" 도 빼도록 하겠습니다.

--- 11.cmd
REM 윈도우 2000 버젼을 확인합니다.
ver | find "5.0" > nul
if %ERRORLEVEL% == 0 goto ver_2000
goto after_ver_2000
REM 2000용
:ver_2000
REM 날짜에서 - 를 지움
set date2=%date:-=%
REM date2에서 - 를 지움
set date3=%date2:~2,8%%
set Today=%date3%.txt
goto run_main
REM 2003 이상 버젼용
:after_ver_2000
REM 날짜에서 - 를 지움
set Today=%date:-=%.txt
goto run_main
:run_main
REM 폴더 만들기
Mkdir C:\%Today%
REM 파일에 내용쓰기 만들기
Echo 파일 만들기 > C:\%Today%\%Today%.txt

11.cmd

11.cmd 파일 실행결과

Posted by Zasfe