반응형
윈도우 시스템을 관리하다 보면 WMI와 더불어.........가 아니라 WMI는 좀 더 고급 스킬에 속하고
배치 파일을 쪼메 할 줄 알아야 한다.
배치 파일이 머에여....?? 그 왜 확장자가 bat나 cmd로 된 애들이다.
얘들이 단순해 보여도 엄청 유용하고 많은 기능을 가지고 있다.
이번 포스트는 배치 파일의 기본은 스킵하고 잔 기술로 바로 들어 가도록 하겄다. ㅎㅎ
정~~~~~말 간단한 건데 어디 찾아 볼 때도 없고 무진장 삽질 했던 문자열 합치기다.
..... 하고 나니까 엄청 쉬워서 화가 났던 거...-_-
하긴 기본기를 안 닦고 바로 잔기술을 썼다 케이씨의 잘 못이긴 하지만..
어쨌거나 저쨌거나 모든걸 다 알고 있다가 써 먹는 경우는... 드믈지.
고로 닥치는 대로 해야 하는 현실 속에서 꿋꿋히 해 냈던거이다..
서론이 전나게 길구나. 본론 들어 가자.
[ Find_Date.bat ]
보라... 이 얼마나 간단한가...=ㅠ=
이게 뭐 하는 배치 파일인고 하니... 뭔가를 하기 위한 기초 작업이었던 스크립트입니다.
간략하게 말해서 특정한 날짜를 찾기위해 만들었져.
시스템 날짜로 오늘 날짜를 잡아 와서 이 전달의 년도와 월만 잡아 오는 것입니다.
예를 들어서 오늘이 2007년 10월 3일 이라면 내가 원하는 답은
2007-09
이런 포맷입니다.
시스템 날짜를 찍어 보면 (커맨드 창에서 echo %date% 를 쳐 보세여~ )
2007-10-03
이런식으로 찍힙니다.
문제는 원하는 형식이 네자리-두자리 식의 형식입니다.
( 왜 꼭 이렇게 해야 하는 것이야!! 하시면.... 꼭 이렇게 해야만 하는 상황은 꼭 생깁디다;;)
고로 월에다가 -1 을 하면 2007-09 로 나올 것이란 행복한 상상을 했지만.. 결과는 -_-
그렇게 호락호락 하지 않읍디다...
2007-9
로 나옵니다... 망할 것... =_=
그래서 위에 보시면 10월 이하의 월에는 ZZ 변수에다가 0을 붙인 숫자를 넣었습니다.
해서~ 결과 포맷은 아래와 같습니다. (오늘이 2007년 10월 3일 이라고 했을 때)
*2007-09*
이렇게 나옵니다.
그럼 이걸 어디에 써 먹을 수 있느냐?
파일명이 위와 같은 포맷으로 되어 있을 경우 이전 달에 쌓인 파일을 자동으로 지우거나 검색하거나
복사하거나 할 수 있다는 거지요... 문제는 저런 포맷으로 파일을 또 만들어야 한다는 거 ~~ ㅎㅎ
그건 뭔가 배치 파일이나 WMI.. 아니면 뭔가 다른 걸 이용해서 만들어야 겠지요.
....케이씨의 잡담.......
배치 파일을 코딩하다가 가독성을 높이기 위해서 쓸대 없이 띄워 쓰기를 하면...
명령어 해석이 안 되나 봅니다. -_-a
그래서.. 붙여쓴거는 그대로 붙여 써야 하져.. 예를 들어서 = 이 들어 가는 수식들 ㅎㅎ
for 문을 이용해서 - 를 딜리미터로 토큰을 자르는게 있는데.. 이건 ... 나중에 포스트 하죠 ^-^;;
게으른 케이 =ㅠ=;;
배치 파일을 쪼메 할 줄 알아야 한다.
배치 파일이 머에여....?? 그 왜 확장자가 bat나 cmd로 된 애들이다.
얘들이 단순해 보여도 엄청 유용하고 많은 기능을 가지고 있다.
이번 포스트는 배치 파일의 기본은 스킵하고 잔 기술로 바로 들어 가도록 하겄다. ㅎㅎ
정~~~~~말 간단한 건데 어디 찾아 볼 때도 없고 무진장 삽질 했던 문자열 합치기다.
..... 하고 나니까 엄청 쉬워서 화가 났던 거...-_-
하긴 기본기를 안 닦고 바로 잔기술을 썼다 케이씨의 잘 못이긴 하지만..
어쨌거나 저쨌거나 모든걸 다 알고 있다가 써 먹는 경우는... 드믈지.
고로 닥치는 대로 해야 하는 현실 속에서 꿋꿋히 해 냈던거이다..
서론이 전나게 길구나. 본론 들어 가자.
[ Find_Date.bat ]
@@echo off
for /f " tokens=1-3 delims=- " %%A in ('echo %DATE%') do (set YY=%%A&set MM=%%B)
set /a MM=%MM%-1
if %MM% GTR 9 goto normal
set ZZ=0%MM%
set Fdate=*%YY%-%ZZ%*
goto end
:normal
set Fdate=*%YY%-%MM*
:end
echo %Fdate%
for /f " tokens=1-3 delims=- " %%A in ('echo %DATE%') do (set YY=%%A&set MM=%%B)
set /a MM=%MM%-1
if %MM% GTR 9 goto normal
set ZZ=0%MM%
set Fdate=*%YY%-%ZZ%*
goto end
:normal
set Fdate=*%YY%-%MM*
:end
echo %Fdate%
보라... 이 얼마나 간단한가...=ㅠ=
이게 뭐 하는 배치 파일인고 하니... 뭔가를 하기 위한 기초 작업이었던 스크립트입니다.
간략하게 말해서 특정한 날짜를 찾기위해 만들었져.
시스템 날짜로 오늘 날짜를 잡아 와서 이 전달의 년도와 월만 잡아 오는 것입니다.
예를 들어서 오늘이 2007년 10월 3일 이라면 내가 원하는 답은
2007-09
이런 포맷입니다.
시스템 날짜를 찍어 보면 (커맨드 창에서 echo %date% 를 쳐 보세여~ )
2007-10-03
이런식으로 찍힙니다.
문제는 원하는 형식이 네자리-두자리 식의 형식입니다.
( 왜 꼭 이렇게 해야 하는 것이야!! 하시면.... 꼭 이렇게 해야만 하는 상황은 꼭 생깁디다;;)
고로 월에다가 -1 을 하면 2007-09 로 나올 것이란 행복한 상상을 했지만.. 결과는 -_-
그렇게 호락호락 하지 않읍디다...
2007-9
로 나옵니다... 망할 것... =_=
그래서 위에 보시면 10월 이하의 월에는 ZZ 변수에다가 0을 붙인 숫자를 넣었습니다.
해서~ 결과 포맷은 아래와 같습니다. (오늘이 2007년 10월 3일 이라고 했을 때)
*2007-09*
이렇게 나옵니다.
그럼 이걸 어디에 써 먹을 수 있느냐?
파일명이 위와 같은 포맷으로 되어 있을 경우 이전 달에 쌓인 파일을 자동으로 지우거나 검색하거나
복사하거나 할 수 있다는 거지요... 문제는 저런 포맷으로 파일을 또 만들어야 한다는 거 ~~ ㅎㅎ
그건 뭔가 배치 파일이나 WMI.. 아니면 뭔가 다른 걸 이용해서 만들어야 겠지요.
....케이씨의 잡담.......
배치 파일을 코딩하다가 가독성을 높이기 위해서 쓸대 없이 띄워 쓰기를 하면...
명령어 해석이 안 되나 봅니다. -_-a
그래서.. 붙여쓴거는 그대로 붙여 써야 하져.. 예를 들어서 = 이 들어 가는 수식들 ㅎㅎ
for 문을 이용해서 - 를 딜리미터로 토큰을 자르는게 있는데.. 이건 ... 나중에 포스트 하죠 ^-^;;
게으른 케이 =ㅠ=;;
반응형
댓글