FOR 문 사용
FOR 문은 명령을 여러 번 “루프”하거나 반복 할 수있는 명령입니다. 여러 프로그래밍 언어로 제공되는 FOR 문과 매우 유사합니다. FOR 문은 배치 파일에서 자주 사용되지만 명령 줄에서 직접 사용할 수도 있습니다.
참고로 FOR 루프의 일반적인 형식은 다음과 같습니다.
FOR %variable IN (set) DO command [command-parameters]
‘variable’은 단일 문자이고 ‘(set)’는 하나 이상의 파일 집합을 지정하고 ‘command’는 집합의 각 파일에 대해 실행할 명령 프롬프트 명령이며 ‘command-parameters’는 선택 사항입니다. ‘command’에 전달할 매개 변수.
Windows 레지스트리에 등록해야하는 여러 COM .dll 파일을 받았다고 가정 해 보겠습니다. 모두 하나의 폴더에 넣은 다음 해당 폴더 내에서 다음 명령을 실행할 수 있습니다.
C:\DLLs> FOR %i IN (*.dll) DO regsvr32 /s %i
이것이 현재 디렉토리에서 찾은 각 .dll 파일에 대해 regsvr32 프로그램을 실행하는 것입니다. ( “/ s”스위치는 단순히 regsvr32에 자동으로 작업을 수행하도록 지시합니다.) 사용되는 변수 ( “% i”)는 대소 문자를 구분하며 차례로 각 .dll 파일의 값을 가정합니다. 그런 다음 .dll 파일의 이름은 동일한 “% i”변수를 사용하여 regsvr32 프로그램에 전달됩니다.
일반 FOR 루프의 변형은 / L 스위치를 사용하며 다음과 같은 일반 형식을 갖습니다.
FOR /L %variable IN (start,step,end) DO command [command-parameters]
이것은 % 변수가 먼저 ‘시작’으로 설정되고 ‘끝’값에 도달 할 때까지 ‘단계’만큼 증가하는 루프를 실행합니다. (이 사용법은 프로그래머에게 _ 매우 _ 친숙해야합니다.) 따라서 1부터 5까지의 숫자 목록을 표시해야한다고 가정 해 보겠습니다. 다음과 같이 할 수 있습니다.
C:\> FOR /L %i IN (1,1,5) DO @echo %i
FOR 루프의 또 다른 변형은 / D 스위치를 사용하며 다음과 같은 일반적인 형식을 갖습니다.
FOR /D %variable IN (set) DO command [command-parameters]
이 변형에서 ‘set’에 와일드 카드가 포함 된 경우 명령은 파일 이름 대신 디렉토리 이름에서 작동합니다. 예를 들어 디렉토리 트리에서 파일 세트를 복사하고 모든 파일을 하나의 디렉토리에 넣으려는 경우 유용합니다.
예를 들어, \ Temp라는 디렉토리가 있습니다. \ Temp \ Temp2 및 \ Temp \ Barry라는 하위 디렉터리가 포함되어 있습니다. \ Temp \ Barry 및 \ Temp \ Temp2 디렉터리에는 복사 할 파일이 포함되어 있습니다. \ Temp 트리에있는 모든 파일 (디렉토리 구조없이)을 \ Files라는 디렉토리로 복사하려면 다음과 같이 할 수 있습니다.
C:\Temp> FOR /D %i IN () DO Copy %i\.* \Files
나는 FOR 루프의 가장 난해한 형태라고 생각하는 것을 끝까지 남겼습니다. / F 스위치를 사용하면 사용 방법 만 파악할 수있는 경우 거의 모든 작업을 수행 할 수 있습니다. 일반적인 형식은 다음과 같습니다.
FOR /F "options" %variable IN (`command`) DO command [command-parameters]
(죄송합니다. 모두 한 줄에 맞지 않습니다.) 사용할 수있는 ‘옵션’이 여러 개 있으며 첫 번째 ‘명령'(뒤로 아포스트로피로 묶인 것)은 모든 명령 프롬프트 명령이 될 수 있습니다. 여기에 이것을 사용하는 방법의 한 예가 있습니다 :
FOR /F "Usebackq Delims==" %i IN (`dir/b c:\temp\a*.tmp`) DO @echo c:\temp\%i | Findstr /f:/ "a b c"
(죄송합니다. 모두 한 줄에 맞지 않습니다.)이 명령은 C : \ Temp \ A.tmp에서 DIR / B 명령을 수행합니다. 찾은 각 파일에 대해 파일 이름을 에코하고 “a”, “b”또는 “c”를 포함하는 모든 행을 찾는 Findstr 명령으로 파이프합니다. 꽤 이상한 일이지만, 적어도 / F를 사용하는 방법을 보여줍니다. 모든 옵션이 무엇인지에 대한 전체 목록을 얻으려면 FOR /? *를 수행하는 것이 좋습니다. 그러면 기본적으로 사용 방법을 알아내는 데 대한 상상력에만 묶여 있습니다.
배치 파일 내에서 FOR 명령을 사용할 수도 있습니다. 유일한 차이점은 % 기호를 두 배로 늘리는 반면 명령 줄에서는 하나의 % 기호 만 사용한다는 것입니다. 예를 들어, 위의 두 번째 예제가 배치 파일에 배치되는 경우 다음과 같습니다.
FOR /L %%i IN (1,1,5) DO @echo %%i
이 팁 (13196)은 Windows 7, 8 및 10에 적용됩니다.