살아가는 이야기

Windows 명령 프롬프트(cmd)에서 for 루프 사용법 본문

컴퓨터, 풀어그림

Windows 명령 프롬프트(cmd)에서 for 루프 사용법

우균 2017. 9. 20. 04:12

Windows의 명령 프롬프트(cmd)에서도 Unix의 bash처럼 for 루프를 사용할 수 있다. 사용법은 다음과 같다.

> for %f in (*.txt) do echo %f

위 명령어는 현재 폴더 내의 모든 텍스트파일(.txt) 이름을 출력하는 것이다.

확장자를 제외한 기본이름(basename)만 출력하고 싶다면 '%~n변수명' 형태를 쓰면 된다.

> for %f in (*.txt) do @echo %~nf

현재 폴더 내의 모든 서브폴더에 대해서 같은 일을 하려면 /r 옵션을 사용하면 된다.

> for /r %f in (*.txt) do echo %f

구체적인 예로 모든 텍스트파일(.txt)을 unix 형식으로 바꾸고 싶다면 다음과 같이 쓸 수 있다(vim이 설치되어 있어야 함).

> for %f in (*.txt) do vim +':set ff=unix' +':wq' %f

배치파일(.bat)에서 사용하려면 %를 하나 더 써야 한다.

for %%f in (*.txt) do echo %%f


예전에 bash의 for 루프에 대해 글을 썼었는데, cmd에도 유사한 기능이 있다니 많이 활용해야겠다. 

Comments