Recent Posts
Recent Comments
Link
관리 메뉴

NaggingMachine

몇가지 실전에 사용하는 Batch 명령어 본문

Visual Studio

몇가지 실전에 사용하는 Batch 명령어

naggingmachine 2009. 5. 27. 17:05
단순 반복되는 일이지만 때로는 프로그램을 작성해야 할 만큼의 필요성을 느끼지 못하는, 또는 도스 환경이라는 제약 조건이 주어진 경우에 Batch 명령어를 사용해야 할 때가 있습니다.

간단하게 작성해본 예제들입니다.

- 매개 변수에서 확장자를 제거하고 파일 이름만 구하는 코드

for /F "tokens=1 delims=1." %%f in ("%1") do set FILENAME=%%f

배치 명령어에서 문자열을 토큰 형태로 자르기 위해서는 for /F 명령어를 사용해야 합니다. 위 코드에서는 배치 파일의 첫번째 매개 변수(%1)을 문자열 형태로 불러들인 다음 구분자(.)를 기준으로 나누고 그 중에서 첫번째 토큰, 그러니까 점(.) 앞에 있는 이름, 즉 파일 이름을 구해서 FILENAME에 저장하는 코드입니다. 저장된 파일 이름은 %FILENAME% 형태로 사용하면 되겠습니다.

- 특정 파일이 존재하는지 확인하는 소스 코드

if not exist %FULLPATH% (
     echo %FULLPATH% 파일이 존재하지 않습니다.
     goto EOF
)

파일의 존재 여부를 알기 위해서는 if exist 명령어를 사용하면 됩니다. 예제에서는 파일이 존재하지 않을 경우를 체크하기 위해 if not exist 명령어를 사용했습니다.

- 디렉터리에서 특정 확장자를 가진 파일을 찾는 코드

for %%f in (*.txt) do for /F "tokens=1 delims." %%p in ("%%f") do ECHO %%p

이 코드는 현재 디렉터리에 존재하는 모든 텍스트 파일(*.txt)에 대해 확장자를 제외한 파일 이름을 출력하는 코드입니다. 앞에서 소개한 확장자 제거 소스를 응용한 코드가 되겠네요. 이처럼 for 문은 계속해서 반복적으로 호출이 가능하므로 (마치 파이프 명령어와 비슷합니다) 응용만 할 수 있다면 여러가지 것들을 해볼 수 있습니다.

이상입니다~ 여러분이 아시는 코드(또는 팁)가 있다면 함께 공유해 주시죠~? :-)