FOR %변수 IN (집합) DO 명령어 [명령어 매개 변수] %변수 바꿀 수 있는 매개 변수를 한 문자로 지정합니다. 일괄 프로그램에서 FOR 명령을 쓰려면, '%변수' 대신 '%%변수'를 지정하십시오. 명령 확장을 사용하면 FOR 명령에 아래와 같은 추가적인 형태가 FOR /D %변수 IN (집합) DO 명령 [명령-매개 변수] 집합에 대표 문자가 있으면 파일 이름 대신 디렉터리 이름과 FOR /R [[드라이브:]경로] %변수 IN (집합) DO 명령 [명령-매개 변수] [드라이브:]경로를 루트로 하여 디렉터리 트리를 따라 내려가며 FOR /L %변수 IN (시작,단계,끝) DO 명령 [명령-매개 변수] 집합은 단계별로 증가/감소하는 시작부터 끝까지의 일련의 숫자입니다. FOR /F ["옵션"] %변수 IN (파일-집합) DO 명령 [명령-매개 변수] 또는 usebackq 옵션이 있는 경우: FOR /F ["옵션"] %변수 IN (파일-집합) DO 명령 [명령-매개 변수] 파일-집합은 하나 이상의 파일 이름입니다. 파일-집합의 각 파일은 eol=c - 행 끝 설명 문자를 지정합니다 다음 예제를 참고하십시오. FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
%i는 구문에서 정의되며, %j와 %k는 "tokens=" 옵션에서 괄호 사이에 있는 파일 이름 세트에 작은따옴표(')를 사용하면, 괄호 사이에 있는 파일 이름 세트에 억음 악센트 기호(`)를 다음 예제는 현재 환경의 환경 변수 이름을 나열합니다. FOR /F "usebackq delims==" %i IN (`집합`) DO @echo %i 추가적으로 FOR 대체 변수 참조가 확장되었습니다. %~I - 따옴표(")를 제거하는 %I을 확장합니다. 위의 구문은 여러 가지 결과를 얻기 위해 결합될 수 있습니다. %~dpI - %I을 드라이브 문자와 경로로만 확장합니다. 위의 예제에서 %I과 PATH는 다른 유효한 값으로 바뀔 수 있습니다. C:\> |
설명하기 위해서 간단하게 폴더와 파일을 만들자.
C:\>md test C:\>cd test C:\test>dir > sample.txt C:\test>md aa C:\test>md bb C:\test>copy sample.txt aa\aa11.txt C:\test>copy sample.txt aa\aa22.txt C:\test>copy sample.txt bb\bb11.txt C:\test>copy sample.txt bb\bb22.txt |
C:\test>for %i in (*) do echo %i
C:\test>echo sample.txt
sample.txt
** %path%에서 공백을 구분자로 하여 명령어가 실행된다.
C:\test>FOR %I IN (%PATH%) DO ECHO %I
C:\test>ECHO C:\WINDOWS\system32
C:\WINDOWS\system32
C:\test>ECHO C:\WINDOWS
C:\WINDOWS
C:\test>ECHO C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\Wbem
C:\test>ECHO C:\Program
C:\Program
C:\test>ECHO Files\Java\jdk1.5.0_16\bin
Files\Java\jdk1.5.0_16\bin
C:\test>ECHO C:\Program
C:\Program
C:\test>ECHO Files\IDM
Files\IDM
C:\test>ECHO Computer
Computer
C:\test>ECHO Solutions\UltraEdit\
Solutions\UltraEdit\
C:\test>FOR %I IN (동해물과 백두산이 마르고 닳도록) DO ECHO %I
C:\test>ECHO 동해물과
동해물과
C:\test>ECHO 백두산이
백두산이
C:\test>ECHO 마르고
마르고
C:\test>ECHO 닳도록
닳도록
** /d 디렉토리 전용 옵션
C:\test>for /d %i in (*) do echo %i
C:\test>echo aa
aa
C:\test>echo bb
bb
** /r 하위디렉토리 옵션
C:\test>for /r %i in (*) do echo %i
C:\test>echo C:\test\sample.txt
C:\test\sample.txt
C:\test>echo C:\test\aa\aa11.txt
C:\test\aa\aa11.txt
C:\test>echo C:\test\aa\aa22.txt
C:\test\aa\aa22.txt
C:\test>echo C:\test\bb\bb11.txt
C:\test\bb\bb11.txt
C:\test>echo C:\test\bb\bb22.txt
C:\test\bb\bb22.txt
** /l 변수 가감
C:\test>for /l %i in (1,2,5) do echo %i
C:\test>echo 1
1
C:\test>echo 3
3
C:\test>echo 5
5
** /f 파일,집합에 대한 루핑처리. 위에 있는 예제대로 하기위해 아래대로 해보자.
C:\test>dir c:\ > myfile.txt
C:\test>type myfile.txt
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: B074-04F5
c:\ 디렉터리
2010-03-10 오전 07:52 0 AUTOEXEC.BAT
2010-03-10 오전 07:52 0 CONFIG.SYS
2010-06-25 오후 07:02 <DIR> Documents and Settings
2010-03-10 오전 07:56 <DIR> Intel
2010-06-28 오후 06:35 <DIR> log
2010-07-06 오후 03:43 <DIR> Program Files
2010-03-10 오전 08:28 190 setup.log
2010-06-30 오후 01:35 <DIR> Temp
2010-07-07 오후 01:41 <DIR> test
2010-07-07 오전 08:28 <DIR> WINDOWS
x개 파일 x,xxx 바이트
xx개 디렉터리 xx,xxx,xxx,xxx 바이트 남음
** 응? 뭐가 뭔지 잘 모르겠다.
C:\test>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
드라이브의 볼륨에는 이름이 없습니다.
일련 번호: B074-04F5
디렉터리
오전 07:52 0 AUTOEXEC.BAT
오전 07:52 0 CONFIG.SYS
오후 07:02 <DIR> Documents and Settings
오전 07:56 <DIR> Intel
오후 06:35 <DIR> log
오후 03:43 <DIR> Program Files
오전 08:28 190 setup.log
오후 01:35 <DIR> Temp
오후 01:41 <DIR> test
오전 08:28 <DIR> WINDOWS
파일 x xxx 바이트
디렉터리 xx xxx,xxx,xxx 바이트 남음
** 뭔소린지 보기 위해 하나씩 해보자
C:\test>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i
드라이브의
일련
디렉터리
오전
오전
오후
오전
오후
오후
오후
오전
오후
오후
오전
파일
디렉터리
C:\test>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %j
볼륨에는
번호:
ECHO가 설정되어 있습니다.
07:52
07:52
07:02
07:56
06:35
03:43
08:28
01:35
01:41
08:28
x
xx
** 그렇다 token에 지정된 2,3번째 열이 각각 %j와 %k에 할당되었다.
C:\test>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %k
이름이 없습니다.
B074-04F5
ECHO가 설정되어 있습니다.
0 AUTOEXEC.BAT
0 CONFIG.SYS
<DIR> Documents and Settings
<DIR> Intel
<DIR> log
<DIR> Program Files
190 setup.log
<DIR> Temp
<DIR> test
<DIR> WINDOWS
xxx 바이트
xxx,xxx,xxx 바이트 남음
** 이외 추가 옵션도 있지만 생략한다. 귀차니즘 ~_~
** 도움이 되는 for문 팁을 소개하는 것으로 후딱 마친다.
'윈도우팁 > 도스' 카테고리의 다른 글
텍스트파일 합치기 (0) | 2010.08.31 |
---|---|
Dos FTP transfer batch (0) | 2010.08.26 |
Dos 관련 사이트 (0) | 2010.07.13 |
Dos Command - 활용 (0) | 2010.07.07 |
Dos Command - IF (0) | 2010.07.07 |