[Command #2] For문에 명령어 사용방법
@ 기본 명령어 사용 구조
For /F "옵션" %변수 in (구문) do 명령어
가장 기본적인 것만을 몇가지 사용하자.
[그이상은 나도 잘 모름.]
() 안에 있는 문자열, 파일, 명령어의 출력값 등에 대해 do 이하 명령어를 수행한다.
@ 본격 분석.===> 아래 구문을 보기 위해서는 우선 Cmd 의 date 명령어를 먼저 봐주세요.
>>아래 명령을 실행해보세요.
D:\tmp>For /F "tokens=1 delims= " %i IN ('date /t') DO echo %i
>> 결과
D:\tmp>echo 2010-10-16
2010-10-16
tokens : FOR 문은 각 행별로 분석하는데 Tokens 은 ()에서 나온 결과의 몇번째 문자열을 전달해줄지 지정.
delims : ()에서 나온 결과 String의 분해시 기준 character를 설정한다.
- -> 조금 이해 되기 힘들죠...^^ 예제 몇개 보면 이해 되실것입니다. 패스.
%i : () 구문의 결과값이 들어간다고 생각하시면 됩니다. 물론 이결과는 tokens와 delims 옵션에 영향을 받습니다.
==> 들어갈수 있는 char 값은 0~9 , a~z A~Z 가능합니다. 만약 %aa 로 넣으면 에러가 발생할 것입니다.
다른 것이 더 있다면 알려주세요. 저도 여기까지 밖에 몰라요. 독한한거라...^^
==> "%변수"의 경우 bat 파일 안에 들어갈 때는 "%%변수" 형태로 적어줘야 합니다.
"%변수"는 대소문자를 구분합니다. 즉 "%a"와 "%A"는 다릅니다.
Ex1> cmd창에서 아래와 같이 호출하지만,
D:\tmp>for /f "tokens=1" %i in ('date /t') do echo %i
=> Bat파일에서는 아래와 같이 %%두개를 넣어야된다.
For /F "tokens=1" %%i in ('date /t') do echo %%i
DO echo %i : 이건 그냥...DO 이하는 Echo라는 명령으로 i의 내용을 출력하는 것이니 패스.
위 네가지 속성을 종합해 보면, ()안 date라는 명령으로 생성된 스티링을
delims 속성으로 tokens으로 지정한 첫번째 스트링을 a가 갖게 되는 것입니다.
@좀더 쉬운예제
Ex1>
D:\tmp>For /F "tokens=1 delims= " %A IN ("Hello Bat_file") DO echo %A
>> 결과
Hello
Ex2> delims의 기준이 ' '(스페이스)이니 tokens가 가르키는 두번째 녀석이 출력되겠죠.
D:\tmp>For /F "tokens=2 delims= " %A IN ("Hello Bat_file") DO echo %A
>> 결과
Bat_file
Ex3>delims의 기준이 ' '(스페이스)와 '_'이니 tokens가 가르키는 세번째 녀석이 출력되겠죠.
D:\tmp>For /F "tokens=3 delims=_ " %A IN ("Hello Bat_file") DO echo %A
>> 결과
file
==> 이제 슬슬 감이 오시죠..^^
Ex4> delims 빼면?????
D:\tmp>For /F "tokens=2" %A IN ("Hello Bat_file") DO echo %A
>> 결과
Bat_file
==> Why ???
명령구문에 delims를 적지 않았지만, default값이 ' '(스페이스)로 정해져 있기 때문입니다.
Ex5> tokens 빼면?????
D:\tmp>For /F %A IN ("Hello Bat_file") DO echo %A
>> 결과
Hello
==> Why ???
tokens를 적지 않았지만, 이것 역시 default값이 1로 정해져 있기 때문입니다.
@ 3개의 결과를 만드는 것을 보실까요.
D:\tmp>FOR /F "tokens=1-3 delims=- " %a IN ('date /t') DO echo %a %b %c
>> 결과
2010 10 16
==> a에 "2010"이 들어가게 되고, b에 "10", c에 "16"이란 값이 들어가게 됩니다.
For에 대해서 100% 적은 것은 아닙니다. 저도 다 모르고요.
위의 내용을 이해 하면 많은 도움이 될 것이라고 생각되어 정리해봤습니다.
'IT > PC Util 및 Tips' 카테고리의 다른 글
[Bat 파일만들기 #2] 예약된 작업 안되는 경우.. (0) | 2010.11.25 |
---|---|
[Bat 파일만들기 #1] 예약된 시간에 특정경로 데이타 backup 하는 bat파일 이해하기/만들기. (0) | 2010.11.25 |
[Command #4] Date 명령어 사용법 (0) | 2010.11.25 |
[Command #3] time 명령어 (0) | 2010.11.24 |
[Command #1] AT (0) | 2010.11.24 |