조회 수 49894 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

for

파일 집합에서 각 파일에 대해 지정된 명령을 실행합니다.

구문

for {%variable|%%variable} in (set) do command [ CommandLineOptions]

매개 변수

{%variable|%%variable}
필수 요소입니다. 대체 가능한 매개 변수를 나타냅니다. 명령 프롬프트에서 for 명령을 실행하려면 %variable을 사용합니다. 배치 프로그램에서 for 명령을 실행하려면 %%variable을 사용합니다. 변수는 대소문자를 구분하며 %A, %B 또는 %C 같은 알파 값으로 나타내야 합니다.
(set)
필수 요소입니다. 지정된 명령으로 처리하려는 둘 이상의 파일, 디렉터리, 값의 범위 또는 텍스트 문자열을 지정하며 괄호가 필요합니다.
command
필수 요소입니다. 지정된 (set)에 포함된 각 파일, 디렉터리, 값의 범위 또는 텍스트 문자열에서 수행할 명령을 지정합니다.
CommandLineOptions
지정된 명령과 함께 사용할 명령줄 옵션을 지정합니다.
/?
명령 프롬프트에서 도움말을 표시합니다.

설명

  • for 사용

    for 명령은 배치 파일 내에서 사용하거나 명령 프롬프트에서 직접 사용할 수 있습니다.

  • 배치 매개 변수 사용

    다음과 같은 특성이 for 명령에 적용됩니다.

    • for 명령은 command에서 모든 파일을 처리할 때까지 %%variable 또는 %variable을 지정된 set의 각 텍스트 문자열로 대체합니다.
    • for variable 이름은 대소문자를 구분하고 전역 변수이며 한 번에 총 52개 이상을 사용할 수 없습니다.
    • %0부터 %9 사이의 배치 매개 변수와 충돌하지 않게 하려면 0부터 9까지의 숫자를 제외한 모든 문자를 variable에 사용할 수 있습니다. 간단한 배치 파일에서는 %%f와 같은 단일 문자로 충분합니다.
    • 복잡한 배치 파일에서는 대체 가능한 다른 변수들과 구분하기 위해 variable에 여러 값을 사용할 수 있습니다.
  • 파일 그룹 지정

    set 매개 변수는 단일 파일 그룹이나 여러 파일 그룹을 나타낼 수 있습니다. 와일드카드(* 및 ?)를 사용하여 파일 집합을 지정할 수 있습니다. 다음은 유효한 파일 집합입니다.

    (*.doc)

    (*.doc *.txt *.me)

    (jan*.doc jan*.rpt feb*.doc feb*.rpt)

    (ar??1991.* ap??1991.*)

    for 명령을 사용할 때 set의 첫째 값이 %%variable 또는%variable을 대체한 다음 지정된 명령을 수행하여 이 값을 처리합니다. set 값에 해당하는 모든 파일이나 파일 그룹이 처리될 때까지 이 과정은 계속됩니다.

  • indo 키워드 사용

    indo는 매개 변수는 아니지만 for 명령에 필요합니다. 이 키워드 중 하나를 생략하면 오류 메시지가 나타납니다.

  • for의 추가 형식 사용

    명령 확장을 사용하면(기본값) 다음과 같은 for 명령의 추가 형식이 지원됩니다.

    • 디렉터리 전용

      set에 와일드카드(* 및 ?)를 포함하면 지정된 command는 지정된 디렉터리의 파일 집합 대신 set과 일치하는 각 디렉터리에 대해 실행됩니다. 구문은 다음과 같습니다.

      for /D {%% | %}variable in (set) do command [CommandLineOptions]

    • 재귀적 사용

      [Drive:]Path에서 시작하는 디렉터리 트리를 검색하고 트리의 각 디렉터리에서 for 문을 실행합니다. /R 다음에 디렉터리를 지정하지 않으면 현재 디렉터리로 간주됩니다. set에 마침표(.) 하나만 있으면 디렉터리 트리를 열거만 합니다. 구문은 다음과 같습니다.

      for /R [[Drive :]Path] {%% | %}variable in (set) do command [CommandLineOptions]

    • 값의 범위 반복

      반복 변수를 사용하여 시작 값(start#)을 설정한 다음 값이 집합의 종료 값(end#)을 초과할 때까지 값의 집합 범위를 단계적으로 검사합니다. /L start#end#를 비교하여 반복을 실행합니다. start#end#보다 작으면 명령이 실행됩니다. 반복 변수가 end#를 초과하면 명령 셸은 루프를 종료합니다. 또한 음의 step#을 사용하면 값을 줄이면서 범위를 단계적으로 검사할 수 있습니다. 예를 들어, (1,1,5)는 시퀀스 1 2 3 4 5를 생성하고 (5,-1,1)은 시퀀스 (5 4 3 2 1)을 생성합니다. 구문은 다음과 같습니다.

      for /L {%% | %}variable in (start#,step#,end#) do command [CommandLineOptions]

    • 반복 및 파일 구문 분석

      파일 구문 분석을 사용하여 명령 출력, 문자열 및 파일 내용을 처리합니다. 반복 변수를 사용하여 검사할 내용이나 문자열을 정의하고 다양한 ParsingKeywords 옵션을 사용하여 구문 분석을 더 자세히 수정합니다. ParsingKeywords token 옵션을 사용하여 반복 변수로 전달할 토큰을 지정합니다. token 옵션 없이 사용하면 /F는 첫째 토큰을 검사만 합니다.

      파일 구문 분석을 출력하고 문자열이나 파일 내용을 읽고 개별 텍스트 줄로 분리한 다음 각 줄을 0개 이상의 토큰으로 구문 분석하는 과정으로 이루어집니다. 그런 다음 반복 변수 값을 토큰으로 설정하여 for 루프를 호출합니다. 기본적으로 /F는 각 파일의 각 줄에서 처음 공백으로 분리된 토큰을 전달하며 빈 줄은 건너뜁니다. 다른 구문은 다음과 같습니다.

      for /F ["ParsingKeywords"] {%% | %}variable in (filenameset) do command [CommandLineOptions]

      for /F ["ParsingKeywords"] {%% | %}variable in ("LiteralString") do command [CommandLineOptions]

      for /F ["ParsingKeywords"] {%% | %}variable in ('command') do command [CommandLineOptions]

      filenameset 인수는 하나 이상의 파일 이름을 지정합니다. filenameset의 다음 파일로 진행하기 전에 각 파일을 열어서 읽고 처리합니다. 기본 구문 분석 동작을 무시하려면 "ParsingKeywords"를 지정합니다. 이것은 다른 구문 분석 옵션을 지정하는 하나 이상의 키워드를 포함하는 따옴표 붙은 문자열입니다.

      usebackq 옵션을 사용하는 경우에는 다음 구문 중 하나를 사용하십시오.

      for /F ["usebackqParsingKeywords"] {%% | %}variable in ("filenameset") do command [CommandLineOptions]

      for /F ["usebackqParsingKeywords"] {%% | %}variable in ('LiteralString') do command [CommandLineOptions]

      for /F ["usebackqParsingKeywords"] {%% | %}variable in (`command`) do command [CommandLineOptions]

      다음 표에서는 ParsingKeywords에 사용할 수 있는 구문 분석 키워드 목록을 보여 줍니다.

      키워드 설명
      eol=c 줄의 끝 문자(한 개의 문자만)를 지정합니다.
      skip=n 파일의 시작 위치에서 건너뛸 줄 수를 지정합니다.
      delims=xxx 구분 기호 집합을 지정합니다. 이 집합은 공백과 탭의 기본 구분 기호 집합을 대체합니다.
      tokens=x,y,m-n 각 반복에 대해 for 본문으로 전달할 각 줄의 토큰을 지정합니다. 따라서 추가 변수 이름이 할당됩니다. m-n 형식은 m부터 n 사이 토큰을 지정하는 범위입니다. tokens= 문자열의 마지막 문자가 별표(*)이면 추가 변수가 할당되고 마지막으로 구문 분석한 토큰 뒤에 줄에 남아 있는 텍스트를 받습니다.
      usebackq 따옴표를 사용하여 filenameset에 파일 이름을 인용하고 따옴표 분은 문장 내 문자열을 명령으로 실행하며, 작은 따옴표 내 문자열은 리터럴 문자열 명령이 되도록 지정합니다.
    • 변수 대체

      for 변수 참조를 위한 대체 수정자가 개선되었습니다. 다음 표에서는 변수 I에 대한 옵션 구문 목록을 보여 줍니다.

      수정자가 있는 변수 설명
      %~I 따옴표("")를 제거하는 %I을 확장합니다.
      %~fI 전체 경로 이름으로 %I을 확장합니다.
      %~dI 드라이브 문자 전용으로 %I을 확장합니다.
      %~pI 경로 전용으로 %I을 확장합니다.
      %~nI 파일 이름 전용으로 %I을 확장합니다.
      %~xI 파일 확장명 전용 %I을 확장합니다.
      %~sI 짧은 이름만 포함하도록 경로를 확장합니다.
      %~aI 파일의 파일 특성으로 %I을 확장합니다.
      %~tI 파일의 날짜/시간으로 %I을 확장합니다.
      %~zI 파일 크기로 %I을 확장합니다.
      %~$PATH:I PATH 환경 변수 목록에 나열된 디렉터리를 검색하고 처음으로 찾은 디렉터리의 전체 이름으로 %I을 확장합니다. 환경 변수 이름이 정의되어 있지 않거나 검색으로 파일을 찾을 수 없으면 이 수정자는 빈 문자열로 확장됩니다.

      다음 표에서는 복합 결과를 얻는 데 사용할 수 있는 수정자 조합 목록을 보여 줍니다.

      조합 수정자가 있는 변수 설명
      %~dpI 드라이브 문자 및 경로 전용으로 %I을 확장합니다.
      %~nxI 파일 이름 및 확장명 전용으로 %I을 확장합니다.
      %~fsI 이름이 짧은 전체 경로 이름 전용으로 %I을 확장합니다.
      %~dp$PATH:I %I에서 PATH 환경 변수의 디렉터리 목록에 나열된 디렉터리를 검색하고 처음으로 찾은 드라이브 문자와 경로로 확장합니다.
      %~ftzaI dir과 같은 출력 줄로 %I을 확장합니다.

      위의 예제에서 %I과 PATH는 다른 유효한 값으로 바꿀 수 있습니다. 유효한 for 변수 이름은 %~ syntax를 종료합니다.

      %I 같은 대문자 변수 이름을 사용하면 코드를 더 읽기 쉽게 만들고 대소문자를 구분하지 않는 수정자와 혼동을 피할 수 있습니다.

  • 문자열 구문 분석

    괄호 사이에 있는 filenameset에 작은 따옴표('filenameset')를 사용하면 해당 문자열에서 for /F 구문 분석 로직을 사용할 수 있습니다. Filenameset은 파일에서 한 줄의 입력으로 처리되며 구분 분석됩니다.

  • 출력 구문 분석

    for /F 명령을 사용하면 괄호 사이의 filenameset에 억음 악센트 기호를 사용하여 명령 출력을 구문 분석할 수 있습니다. 이것은 하위 Cmd.exe로 전달되는 명령줄로 처리되고 출력은 메모리에 캡처되어 파일처럼 구문 분석됩니다.

예제

배치 파일에서 for 명령을 사용하려면 다음 구문을 사용하십시오.

for %%variable in (set) do command [CommandLineOptions]

대체할 수 있는 변수 %f를 사용하여 현재 디렉터리에 확장명이 .doc나 .txt인 모든 파일의 내용을 표시하려면 다음을 입력하십시오.

for %f in (*.doc *.txt) do type %f

위의 예제에서 확장명이 .doc나 .txt인 현재 디렉터리의 각 파일은 모든 파일의 내용이 표시될 때까지 %f 변수로 대체됩니다. 배치 파일에서 이 명령을 사용하려면 모든 %f %%f로 바꾸십시오. 그렇지 않으면 변수는 무시되고 오류 메시지가 표시됩니다.

주석 처리된 줄을 무시하고 파일을 구문 분석하려면 다음을 입력하십시오.

for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

이 명령은 Myfile.txt 파일에서 세미콜론으로 시작하는 줄은 무시하고 각 줄을 구문 분석하여 각 줄에서 두 번째와 세 번째 토큰을 FOR 본문으로 전달합니다. 이 때 토큰은 쉼표나 공백으로 구분됩니다. FOR 문의 본문은 %i를 참조하여 두 번째 토큰을 얻고, %j를 참조하여 세 번째 토큰을 얻으며, %k를 참조하여 세 번째 이후의 나머지 토큰을 모두 얻습니다. 제공한 파일 이름에 공백이 있으면 텍스트에 따옴표를 사용하십시오(예: "File Name"). 따옴표를 사용하려면 usebackq를 사용해야 합니다. 그렇지 않으면 따옴표는 구문 분석할 리터럴 문자열로 해석됩니다.

%iFOR 문에서 명시적으로 선언되고 %j%ktokens= 옵션을 사용하여 함축적으로 선언됩니다. 문자 'z'나 'Z'보다 큰 변수를 선언하지 않는다는 조건으로 tokens=를 사용하면 토큰은 최대 26개까지 정의할 수 있습니다.

괄호 사이에 filenameset을 넣어 명령 출력을 구문 분석하려면 다음을 입력하십시오.

for /F "usebackq delims==" %i IN (`set`) DO @echo %i

이 예제는 현재 환경의 환경 변수 이름을 열거합니다.

서식 범례

서식 의미
기울임꼴 사용자가 제공해야 하는 정보
굵게 사용자가 보이는 대로 정확하게 입력해야 하는 요소
줄임표(...) 명령줄에서 여러 번 반복되는 매개 변수
대괄호([]) 옵션 항목
중괄호({}) 또는 세로줄(|)로 구분된 선택 항목예: {even|odd} 사용자가 하나만 선택할 수 있는 일련의 선택 사항
Courier 글꼴 코드 또는 프로그램 출력

관련 항목


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
75 MFC MFC에서 커맨드 인자(cmd argument) 사용하기 2010.12.13 64399 0
74 MFC CString 에서 형변환 함수들 총정리 2010.11.29 105330 0
73 MFC _CrtDumpMemoryLeaks() 을 이용한 메모리 누수 탐지법 2 2010.11.02 46804 0
72 MFC 프로젝트 Resource에서 파일로 저장하는 방법 2010.11.01 37198 0
71 MFC CFileDialog 초기 폴더 지정 2010.08.11 59441 0
70 MFC CTree Ctrl 맴버 요약 2010.06.24 44197 0
69 MFC [Collection] CList 템플릿 클래스 사용하기 2010.06.24 49240 0
68 MFC [Collection] CMap 템플릿 클래스 사용하기 2010.06.23 52869 0
67 MFC MFC 클래스간 포인터 얻기 2010.06.01 49078 0
» 일반 배치파일(bat)에서 for루프 사용법 2010.04.15 49894 0
65 C# C# 레지스트리 사용하기 2010.03.15 42840 0
64 C# 디렉토리 경로 입력 받기 2010.03.15 40999 0
63 Python python을 이용한 프로그램 개발 및 배포 방안 2010.02.25 48338 0
62 MFC 폴더가 존재하는 지 확인하고, 없으면 만드는 함수 2010.02.01 60893 0
61 일반 ClearCase 팁 1 2009.11.26 41046 0
목록
Board Pagination ‹ Prev 1 ... 25 26 27 28 29 30 31 32 33 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5