쉘[도스] [도움말 캡쳐] FOR

황제낙엽 2020.05.21 18:26 조회 수 : 3463

C:\Users\7>for /?

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

 

FOR %변수 IN (집합) DO 명령어 [명령어 매개 변수]

 

  %변수      바꿀 수 있는 매개 변수를 한 문자로 지정합니다.

  (집합)      하나 이상의 파일을 지정합니다. 와일드카드를 사용할 수 있습니다.

  명령어      각 파일에 대해 수행할 명령을 지정합니다.

  명령어-매개 변수

              지정된 명령의 매개 변수나 스위치를 지정합니다.

 

일괄 프로그램에서 FOR 명령을 쓰려면, '%변수' 대신 '%%변수'를 지정하십시오.

변수 이름에서는 대문자와 소문자를 구별하므로 %i와 %I는 다릅니다.

 

명령 확장을 사용하면 FOR 명령에 아래와 같은 추가적인 형태가

지원됩니다.

 

FOR /D %변수 IN (집합) DO 명령 [명령-매개 변수]

 

   집합에 대표 문자가 있으면 파일 이름 대신 디렉터리 이름과

   일치하도록 지정합니다.

 

FOR /R [[드라이브:]경로] %변수 IN (집합) DO 명령 [명령-매개 변수]

 

   [드라이브:]경로를 루트로 하여 디렉터리 트리를 따라 내려가며

   FOR 구문을 트리의 각 디렉터리에서 실행합니다. /R 스위치 뒤에

   디렉터리가 지정되지 않으면 현재 디렉터리가 사용됩니다.

   집합에 마침표(.)가 사용되면 디렉터리 트리만 나열합니다.

 

FOR /L %변수 IN (시작,단계,끝) DO 명령 [명령-매개 변수]

 

   집합은 단계별로 증가/감소하는 시작부터 끝까지의 일련의 숫자입니다.

   따라서 (1,1,5)는 1 2 3 4 5를 나타내며 (5,-1,1)은 5 4 3 2 1을

   나타냅니다.

 

FOR /F ["옵션"] %변수 IN (파일-집합) DO 명령 [명령-매개 변수]

FOR /F ["옵션"] %변수 IN ("문자열") DO 명령어 [명령-매개 변수]

FOR /F ["옵션"] %변수 IN ('명령어') DO 명령어 [명령-매개 변수]

 

    또는 usebackq 옵션이 있는 경우:

 

FOR /F ["옵션"] %변수 IN (파일-집합) DO 명령 [명령-매개 변수]

FOR /F ["옵션"] %변수 IN ('문자열') DO 명령어 [명령-매개 변수]

FOR /F ["옵션"] %변수 IN (`명령어`) DO 명령어 [명령-매개 변수]

 

   파일-집합은 하나 이상의 파일 이름입니다. 파일-집합의 각 파일은

   다음 파일로 이동하기 전에 열기 또는 읽기 등의 작업이 진행됩니다.

   파일을 읽어서 문자열을 한 행씩 분리하고 각 행을 0개 이상의

   토큰으로 구문 분석하는 과정으로 되어 있습니다. For 루프의 본문은

   발견된 토큰 문자열에 설정된 변수 값(들)과 함께 호출됩니다.

   기본값으로 /F는 파일의 각 행으로부터 분리된 토큰을 첫 번째 공백에

   전달합니다. 빈 행은 건너뜁니다. "옵션" 매개 변수를 지정하여

   기본 구문 분석 동작을 무시할 수 있습니다. 이것은 다른 구문 분석

   매개 변수를 지정하는 하나 이상의 키워드를 갖는 인용 부호로

   묶인 문자열입니다.

   키워드는 아래와 같습니다.

 

        eol=c           - 행 끝 설명 문자를 지정합니다

                          (하나만)

        skip=n          - 파일의 시작 부분에서 무시할 행의 개수를

                           지정합니다.

        delims=xxx      - 구분 문자 집합을 지정합니다.  이것은 공백 또는

                          탭에 대한 기본 구분 문자 집합을 바꿉니다.

        tokens=x,y,m-n  - 각 줄에서 어떤 토큰이 각 반복에 대한

                          For 구문으로 전달될지를 지정합니다.

                          이 작업은 추가 변수 이름이 할당되도록 됩니다.

                          m-n 형식은 m에서부터 n까지를 나타냅니다.

                          토큰=문자열 내에 있는 마지막 문자가 별표(*)이면,

                          추가 변수가 할당되고, 분석된 마지막 토큰

                          뒤에 남아 있는 텍스트를 받습니다.

        usebackq        - 억음 악센트 기호(`) 내의 문자열을 명령으로

                          처리하며, 작은따옴표(')는 문자열 명령어로

                          큰따옴표(")는 파일-집합에서 파일 이름을

                          나타내도록 사용합니다.

 

    다음 예제를 참고하십시오.

 

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

 

    위의 예제에서는 myfile.txt의 모든 행을 구문 분석하지만

    세미콜론으로 시작하는 행은 무시하고, 각 행의 두 번째와

    세 번째 토큰을 쉼표 및/또는 공백으로 구분되는 토큰으로

    For 본문으로 전달합니다. 두 번째, 세 번째, 나머지 토큰을

    가져오려면, For 본문 내용의 %i, %j, %k를 참조하십시오.

    공백을 포함한 파일 이름의 경우, 파일 이름에 큰따옴표(")를

    적용하십시오. 큰따옴표를 적용하려면 "usebackq" 옵션을

    사용해야 합니다. 그렇지 않으면, 큰따옴표는 분석할 문자로

    취급됩니다.

 

    %i는 구문에서 정의되며, %j와 %k는 "tokens=" 옵션에서

    정의됩니다. "tokens=" 행에서는 26개의 토큰까지

    정의할 수 있으나 'z'나 'Z' 보다 큰 변수를 정의할 수는 없습니다.

    FOR 변수는 하나의 문자이며 대/소문자를 구분하며, 글로벌 변수로

    한 번에 52개 이상을 사용할 수 없습니다.

 

    괄호 사이에 있는 파일-집합에 작은따옴표(')를 사용하면,

    해당 문자열에서 FOR /F 구문 분석을 사용할 수 있습니다.

    이와 같은 경우, 하나의 행으로 취급되며 분석됩니다.

 

    괄호 사이에 있는 파일-집합에 억음 악센트 기호(`)를

    사용하면, 해당 명령에 대한 결과를 분석하는데 FOR /F 명령을

    사용할 수 있습니다. 이와 같은 경우, CMD.EXE로 전달된 명령줄로

    취급되며, 결과는 메모리에 저장되고 파일처럼 분석됩니다.

 

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

 

    FOR /F "usebackq delims==" %i IN (`집합`) DO @echo %i

 

추가적으로 FOR 대체 변수 참조가 확장되었습니다.

다음과 같은 옵션 구문을 사용할 수 있습니다:

 

    %~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     - %I을 출력줄과 같은 DIR로 확장합니다.

 

위의 예제에서 %I과 PATH는 다른 유효한 값으로 바뀔 수 있습니다.

%~ 구문은 유효한 FOR 변수 이름으로 종료됩니다.

%I와 같은 대문자 변수 이름을 선택하면 쉽게 읽을 수 있으며

대/소문자를 구분하지 않는 구문에서 혼동을 피할 수 있습니다.

번호 제목 sitelink1 글쓴이 날짜 조회 수
243 Windows 11 Pro 환경의 WSL2(Windows Subsystem for Linux 2)에서 X11(그래픽 앱)을 실행   황제낙엽 2026.01.06 2675
242 경로 관련 별칭(alias)   황제낙엽 2025.12.19 2561
241 macOS 에서 finder 로 숨김 디렉토리, 파일을 조회   황제낙엽 2025.09.26 1654
240 특정 폴더 제외하고 가장 최근에 생성된 폴더 이름 가져오는 shell file 만들기   황제낙엽 2025.07.28 2601
239 [Copilot] WSL2 Ubuntu 실행 방식과 차이점   황제낙엽 2025.06.09 2578
238 [Gemini] docker pull 로 다운받은 ubuntu 이미지를 portainer 로 실행하여 접속   황제낙엽 2025.06.02 2587
237 Windows 11 Pro -> WSL2 (Ubuntu) -> Docker -> Portainer   황제낙엽 2025.05.30 2737
236 윈도우 11 설치 USB 만들기 가이드 https://blog.naver.com/cjs0308cjs/223694056158  황제낙엽 2025.01.10 4002
235 [bard] docker로 실행한 container에 터미널로 접속   황제낙엽 2024.02.01 3679
234 [2023. 11. 6.] 데이터베이스, GUI 클라이언트 환경의 Docker Compose 모음 https://blog.pages.kr/2819  황제낙엽 2024.01.29 3842
233 Docker Compose 문법 정리 (YAML)   황제낙엽 2024.01.29 3389
232 Docker Compose 명령어(실행,중지,삭제) https://docs.docker.com/compose/reference/  황제낙엽 2024.01.28 3864
231 Docker Compose 에 대한 이해와 사용법에 대한 포스팅 모음 https://docs.docker.com/compose/gettingstarted/  황제낙엽 2024.01.26 4104
230 Kubernetes 와 Docker 의 관계   황제낙엽 2024.01.26 3046
229 docker 를 windows 에서 실행하는 방법 3가지 정리   황제낙엽 2024.01.23 3756
228 windows + docker 설치에 대한 포스팅 모음   황제낙엽 2024.01.22 3553
227 윈도우 10 실행키 입력 명령어 목록 (Windows + R) https://haenny.tistory.com/217  황제낙엽 2023.07.12 7564
226 윈도우 10 "원격 데스크톱"의 "컴퓨터 목록" 정보 저장 위치 (from Bing)   황제낙엽 2023.07.11 4017
225 compress this drive to save disk space (이 드라이브를 압축하여 디스크 공간 절약)   황제낙엽 2023.05.09 4238
224 명령어 모음   황제낙엽 2023.05.06 3670