728x90
반응형
DATE 명령
배치 파일에서 날짜 관련 문자열 만들기 위해서는 "date" 명령을 사용해야 합니다.커맨드 라인에서 date 명령을 입력하면 현재 날짜를 표시하고 날짜를 변경할 수 있습니다. 날짜 관련 문자열을 만드는데는 단순히 현재의 날짜 정보만 얻으면 되므로, 파라미터 "/t"를 붙여서 실행합니다.
하지만, 영문 윈도우와 한글 윈도우의 "date /t" 결과가 다릅니다.
아래는 한글 윈도우의 결과입니다.
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\hbesthee>date /t 2012-04-17 C:\Users\hbesthee>
아래는 영문 윈도우의 결과입니다.
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\hbesthee>date /t Tue 04/17/2012 C:\Users\hbesthee>
날짜 문자열(yyyymmdd) 만들기
1. FOR 문을 사용하여 만드는 방법
FOR /F "tokens=1-4 delims=- " %%i IN ('date /t') DO SET yyyymmdd=%%i%%j%%k REM FOR /F "tokens=2-6 delims=/ " %%i IN ('date /t') DO SET yyyymmdd=%%k%%i%%j ECHO %yyyymmdd%위와 같이 코딩을 하고, 배치 파일로 저장(예: for_test.bat)하여 실행하면, "20120417"이 출력됩니다.
FOR 문을 이용하여 "date /t"의 문자열을 받아서, 구분자(delims)에 있는 문자들로 구분하여 토크 배열(tokens)을 만들고, 그중에서 1~4번까지의 항목들을 가져와서 첫 번째 것은 %i로 받고, 차례로 %j, %k로 날짜 정보를 분리합니다.
분리된 날짜 정보를 마지막 SET 명령에서 하나의 문자열로 합치고, ECHO 명령으로 생성된 yyyymmdd 변수의 값을 출력합니다.
영문 윈도우의 경우, 주석(REM)으로 해 놓은 두 번째 줄로 실행해야 동일한 결과("20120417")가 만들어 집니다.
2. SET 명령의 표현식을 이용하여 만드는 방법
SET yyyymmdd=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% REM SET yyyymmdd=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2% ECHO %yyyymmdd%
위와 같이 코딩을 하고, 배치 파일로 저장(예: set_test.bat)하여 실행하면, "20120417"이 출력됩니다.
SET 명령문으로 환경변수를 설정할 때, 다음의 표현식들을 사용할 수 있습니다.
() - 그룹 짓기 ! ~ - - 단일 연산자 * / % - 산술 연산자 + - - 산술 연산자 << >> - 논리 이동 - 비트단위 and ^ - 비트단위 상호 배제 or | - 비트단위 or = *= /= %= += -= - 할당 &= ^= |= <<= >>= , - 식 구분 기호
다음과 같은 미리 정의된 동적변수를 포함하여 원하는 문자열을 변수로 할당할 수 있습니다.
%CD% - 현재 디렉터리 문자열로 확장합니다. %DATE% - DATE 명령과 같은 포맷을 사용하여 현재 날짜로 확장합니다. %TIME% - TIME 명령과 같은 포맷을 사용하여 현재 시간으로 확장합니다. %RANDOM% - 0과 32767 사이에 있는 임의 숫자로 확장합니다. %ERRORLEVEL% - 현재 ERRPRLEVEL 값으로 확장합니다 %CMDEXTVERSION% - 현재 명령 프로세서 확장자 버전 번호로 확장합니다. %CMDCMDLINE% - 명령 프로세서를 호출하는 원본 명령줄로 확장합니다. %HIGHESTNUMANODENUMBER% - 이 컴퓨터의 최고 NUMA 노드 수로 확장합니다.
SET을 이용한 날짜 문자열을 만드는 소스에서 DATE 변수를 활용하여 현재의 날짜 문자열에서 년, 월, 일 부분을 추출합니다. "~" 표현식을 이용하여, 원하는 부분의 문자열만 추출합니다. "%DATE:~0,4%"의 의미는 첫 번째 문자로부터 4개의 문자를 추출한다는 의미입니다. 즉, "2012"가 됩니다. 따라서 "%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%"게 하면 yyyymmdd의 형태인 "20120417"이 만들어지게 됩니다.
참고자료
'프로그래밍' 카테고리의 다른 글
[C#] 응용 프로그램의 버전 정보 수정하기 (0) | 2014.06.30 |
---|---|
FFT(Fourier transform) 관련 글 모음 (0) | 2012.11.14 |
7zip과 배치 파일을 이용한 간편한 소스 백업 방법 (2) | 2012.04.10 |
VisualAssistX에서 Doxygen을 위한 주석을 편리하게 만들기(Refactor Document Method) (0) | 2011.07.28 |
C++/CLI 참고자료(Reference) (0) | 2011.07.04 |