명령: "FOR" 켜짐 Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. 사용 가능
명령의 예 "FOR"
그만큼
`FOR`Windows 명령 프롬프트의 명령은 배치 파일을 반복하는 데 사용됩니다. 여기 몇 가지 예가 있어요.
예 1: 디렉터리의 파일을 통해 반복:
FOR %G IN (예배 규칙서\*) DO ECHO %G
설명: 이 명령은 지정된 디렉터리에 있는 각 파일의 이름을 인쇄합니다.
예 2: 특정 파일 확장자를 가진 파일 반복:
FOR %G IN (예배 규칙서\*.txt) DO ECHO %G
설명: 지정된 디렉터리에 있는 각 텍스트 파일의 이름을 인쇄합니다.
예 3: 하위 디렉터리에서 파일을 반복적으로 반복:
FOR /R 예배 규칙서 %G IN (*.txt) DO ECHO %G
설명: 지정된 디렉터리의 모든 하위 디렉터리를 반복적으로 순회하고 각 텍스트 파일의 이름을 인쇄합니다.
예 4: 특정 범위의 숫자를 통해 반복:
FOR /L %G IN (1,1,10) DO ECHO %G
설명: 1부터 10까지의 숫자를 출력합니다.
예 5: 문자열의 문자를 통해 반복:
FOR %G IN ("안녕하세요") DO ECHO %G
설명: "Hello"라는 단어의 각 문자를 인쇄합니다.
예 6: 파일 내용을 한 줄씩 반복:
FOR /F "tokens=*" %G IN (파일.txt) DO ECHO %G
설명: "File.txt" 파일의 행을 반복하여 각 행을 출력합니다.
예 7: 환경 변수를 통한 반복:
FOR %G IN (%PATH%) DO ECHO %G
설명: 환경 변수의 경로를 반복합니다.
`PATH`각 경로를 출력합니다.
예 8: 사용`SET`루프에서:
FOR %G IN (1 2 3) DO SET /A 숫자=%G * 2 & ECHO 두 배의 %G ~이다 %숫자%
설명: 변수를 설정합니다.
`숫자`루프의 현재 숫자를 두 배로 늘리고 이것을 인쇄합니다.
예 9: 하위 디렉터리 및 파일 반복:
FOR /R %G IN (*) DO ECHO %G
설명: 현재 디렉터리의 모든 하위 디렉터리와 파일을 재귀적으로 탐색합니다.
예 10: 중첩 루프:
FOR %G IN (1 2) DO FOR %H IN (A B) DO ECHO %G%H
설명: 두 개의 루프를 중첩하고 %G와 %H의 모든 조합을 인쇄합니다.
배치 파일에 유의하십시오
`%`~을 통해
`%%`교체해야합니다. 예를 들어:
`FOR %G IN (...) DO ECHO %%G`. 직접 프롬프트(
`%`).
"FOR" Microsoft Windows 도움말에서 발췌
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
파일 집합에서 각 파일에 대해 지정된 명령을 실행합니다.
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와 같은 대문자 변수 이름을 선택하면 쉽게 읽을 수 있으며
대/소문자를 구분하지 않는 구문에서 혼동을 피할 수 있습니다.
중요 정보, "FOR" 명령에 대한 팁
사용할 때
`FOR`Windows 명령 프롬프트에서 명령을 실행할 때 주의해야 할 몇 가지 중요한 사항이 있습니다.
1.
배치 파일의 구문: `FOR`배치 파일에서 명령을 실행하려면 다음을 수행해야 합니다.
`%`~을 통해
`%%`대리자. 예를 들어:
`FOR %%G IN (...) DO ECHO %%G`.
2.
변수 사용: 일반적으로 변수를 사용합니다(예:
`%%G`)에서
`FOR`- 값을 저장하는 루프입니다. 변수는 루프 외부에서 할당된 값에 액세스할 수 없습니다.
SET Variable=초기 값
FOR %%G IN (값1 값2) DO SET Variable=%%G
ECHO %Variable%
여기서는
`%Variable%`"초기값" 값을 유지하십시오.
`SET`-별도의 지시
`FOR`루프가 실행됩니다.
3.
경로 또는 파일 이름의 공백: 경로 또는 파일 이름에 공백이 포함된 경우 경로 또는 파일 이름이 올바르게 해석되도록 따옴표로 묶어야 합니다.
FOR %%G IN ("공백이 있는 디렉토리\공백이 있는 파일.txt") DO ECHO %%G
4.
옵션`FOR /F`-루프: 만약 당신이
`FOR`와 관련하여
`/F`옵션(예:
`FOR /F "tokens=*" %%G IN (파일.txt) DO ECHO %%G`), 다음 구문을 알아야 합니다.
`tokens`그리고
`delims`원하는 결과를 얻으려면 옵션을 신중하게 조정하세요.
5.
중첩 루프: 중첩 루프에서는 다음을 올바르게 사용해야 합니다.
`%`또는
`%%`변수가 올바른 루프에서 참조되는지 확인하십시오.
FOR %%G IN (1 2) DO (
ECHO 외부 루프: %%G
FOR %%H IN (A B) DO ECHO 내부 루프: %%H
)
6.
파일 라인의 끝`FOR /F`: 만약 너라면
`FOR /F`파일의 줄을 반복하려면 기본적으로 첫 번째 공백이나 탭까지의 각 줄이 토큰으로 간주됩니다. 옵션을 사용하면 이 작업을 수행할 수 있습니다.
`delims`조정하다.
FOR /F "tokens=* delims=" %%G IN (파일.txt) DO ECHO %%G
7.
날짜 및 시간 변수 옵션:`%DATE%`- 또는
`%TIME%`-하나의 변수
`FOR`- 루프, 형식이 다를 수 있으므로 시스템의 지역 설정에 주의해야 합니다.
8.
UTF-8 인코딩을 사용하여 파일 반복: `FOR /F`명령은 UTF-8 인코딩이 있는 파일을 반복하는 데 어려움을 겪을 수 있습니다. 이러한 경우에는 다음과 같은 다른 도구를 사용하는 것이 더 나을 수 있습니다.
`FINDSTR`사용.
사용 사례의 특정 요구 사항과
`FOR`- 그에 따라 루프를 조정하십시오. 당신은 할 수 있습니다
`FOR /?`전체 도움말과 사용 가능한 모든 옵션을 보려면 명령 프롬프트에서