Windows batch 파일로 스크립트를 만들면서 날짜별 백업파일을(filename.ext.yyyymmdd_hhmi) 만들어서 사용하는데, 간단하지만 변수가 몇가지 발생합니다.

 

즉 OS에서 설정한 날짜포맷을 먼저 확인해야 오류가 발생하지 않게 됩니다.

 

보통 일반적인 PC의 windows 환경에서는 다음과 같이 날짜 및 시간이 표시됩니다.

icrosoft Windows [Version 6.1.7601]
opyright (c) 2009 Microsoft Corporation. All rights reserved.

 

:\Users\Guest>date
현재 날짜: 2014-12-16

 

C:\Users\Guest>time
현재 시간:  9:25:59.93

 

이경우 yyyymmdd_hhmi 형식의 date_time 날짜는 다음과 같은 과정으로 생성하였습니다.

 

1. 날짜, 시간에서 구분자 ("-", ":")를 제거합니다.

2. 시간은 초단위까지만 사용하기 위해 "." 이전까지만 구합니다.

3. 날짜 + 시간 문자열로 만들고 원본파일에 백업구분 문자열을 붙여서 move를 합니다.

 

set date2=%date:-=%
set time2=%time: =0%
set time2=%time2::=%
set time3=%time2:~0,6%

 

set date_time=%date2%_%time3%

set ROOT=d:\backup
set BACKUP_PATH=%ROOT%\%org_name%.%date_time% 

 

그런데 Default 한글 OS가 아니거나  날짜, 시간형식을 변경한 Windows에서는 문자열을 substring할때 주의해야 합니다.

 

D:\>date
The current date is: Tue 12/16/2014

 

C:\>date
The current date is: 12/15/2014 Mon

 

날짜형식이 위와같이 나오는 경우 치환문자열은 "-" 대신 "/" 를 사용해야 하고, 공백문자열만 제거하거나 요일과 공백을 모두 제거한 후 사용하도록 한다.