Thursday, September 28, 2006
배치파일] FOR문으로, 텍스트 파일 행 처리 - 도스 DOS Bat File 강좌
배치 파일의 FOR문으로 파일들에 와일드카드만 적용시킬 수 있는 것이 아니라, 텍스트 파일의 각 행들도 일괄처리할 수 있습니다.
우선, 이것은 이 게시물에서 사용할 테스트용 텍스트 파일입니다. test.txt 라는 이름으로 저장합니다.
다음 예제를 0.bat 등의 이름으로 저장합니다.
그런 후, 도스창에서 0.bat 이라고 실행하면
이런 결과가 나옵니다.
배치 파일의 for문이, test.txt 파일을 열어서 각 행마다
echo 결과입니다: %%i
이런 명령을 적용한 결과입니다.
/f : 파일명이 아닌, 파일 내용을 처리하라고 지시하는 옵션
"delims=" : for문으로 파일 속을 읽으면, 파일 각 행의 첫번째 공백문자 앞에서 읽기를 멈추고 다음줄로 넘어가는데, 이 옵션은 행의 끝까지 모두 읽게 하는 것입니다.
echo 결과입니다: %%i : 이것은 각 행에서 할 일을 지정하는 것입니다. 변수인 %%i (퍼센트 + 퍼센트 + 소문자 아이) 속에 자동으로 파일의 각 행이 들어갑니다.
그런데 for문의 이런 고급 기능은, 윈도우2000/XP 이상의 도스창에서만 됩니다. 윈도우98이나 MS-DOS 6.0 같은 16비트 도스에서는 안됩니다.
제가 예전에, 텍스트 파일을 처리하는 이런저런 일을 할 때, C언어로 일일이 프로그래밍을 하자니 너무 힘들고 귀찮더군요. 그래서 for문으로 텍스트 파일을 대충 처리했습니다.
그렇지만 지금은 펄(Perl)로 하고 있습니다. 윈도우에서도 액티브펄(ActivePerl)을 무료로 다운받아서 설치하면 됩니다.
물론 상용 프로그램 등에 포함되어 배포될 스크립트라면, 이렇게 배치 파일로 작성하는 것도 좋은 방법일 것입니다.
▶▶ 배치파일] FOR 문 예제. for in do 사용법 - 도스 DOS Bat File 강좌
우선, 이것은 이 게시물에서 사용할 테스트용 텍스트 파일입니다. test.txt 라는 이름으로 저장합니다.
foo
이 파일은 테스트용 파일입니다.
FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO
Google Goooooooooooogle
ㅎㅎ
fooFoo
<foo>
안녕하세요. 반갑습니다.
이 파일은 테스트용 파일입니다.
FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO
Google Goooooooooooogle
ㅎㅎ
fooFoo
<foo>
안녕하세요. 반갑습니다.
텍스트 파일을 한줄씩 처리하는 예제
다음 예제를 0.bat 등의 이름으로 저장합니다.
@echo off
for /f "delims=" %%i in (test.txt) do echo 결과입니다: %%i
for /f "delims=" %%i in (test.txt) do echo 결과입니다: %%i
그런 후, 도스창에서 0.bat 이라고 실행하면
D:\Z>0.bat
결과입니다: foo
결과입니다: 이 파일은 테스트용 파일입니다.
결과입니다: FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO
결과입니다: Google Goooooooooooogle
결과입니다: ㅎㅎ
결과입니다: fooFoo
결과입니다: <foo>
결과입니다: 안녕하세요. 반갑습니다.
결과입니다: foo
결과입니다: 이 파일은 테스트용 파일입니다.
결과입니다: FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO
결과입니다: Google Goooooooooooogle
결과입니다: ㅎㅎ
결과입니다: fooFoo
결과입니다: <foo>
결과입니다: 안녕하세요. 반갑습니다.
이런 결과가 나옵니다.
배치 파일의 for문이, test.txt 파일을 열어서 각 행마다
echo 결과입니다: %%i
이런 명령을 적용한 결과입니다.
자세한 설명
for /f "delims=" %%i in (test.txt) do echo 결과입니다: %%i
/f : 파일명이 아닌, 파일 내용을 처리하라고 지시하는 옵션
"delims=" : for문으로 파일 속을 읽으면, 파일 각 행의 첫번째 공백문자 앞에서 읽기를 멈추고 다음줄로 넘어가는데, 이 옵션은 행의 끝까지 모두 읽게 하는 것입니다.
echo 결과입니다: %%i : 이것은 각 행에서 할 일을 지정하는 것입니다. 변수인 %%i (퍼센트 + 퍼센트 + 소문자 아이) 속에 자동으로 파일의 각 행이 들어갑니다.
그런데 for문의 이런 고급 기능은, 윈도우2000/XP 이상의 도스창에서만 됩니다. 윈도우98이나 MS-DOS 6.0 같은 16비트 도스에서는 안됩니다.
여담
제가 예전에, 텍스트 파일을 처리하는 이런저런 일을 할 때, C언어로 일일이 프로그래밍을 하자니 너무 힘들고 귀찮더군요. 그래서 for문으로 텍스트 파일을 대충 처리했습니다.
그렇지만 지금은 펄(Perl)로 하고 있습니다. 윈도우에서도 액티브펄(ActivePerl)을 무료로 다운받아서 설치하면 됩니다.
물론 상용 프로그램 등에 포함되어 배포될 스크립트라면, 이렇게 배치 파일로 작성하는 것도 좋은 방법일 것입니다.
▶▶ 배치파일] FOR 문 예제. for in do 사용법 - 도스 DOS Bat File 강좌
tag: batch
배치파일 | DOS CMD BATCH .BAT | VBScript .VBS
<< Home