BAT와 CMD의 차이
게시일: 2005/06/20 | 글쓴이: doa | 14629 번 | 프린트 | 메일


BAT는 DOS와 9x에서 사용되는 일괄 처리 파일이다. 반면에 CMD는 NT 계열의 OS에서 일괄처리를 위해 사용되는 파일이다. 사실 필자는 BAT라는 확장자보다는 CMD라는 확장자를 선호한다. 그러다 보니 BAT와 CMD의 차이를 묻는 BAT vs CMD과 같은 질문도 올라온다.

따라서 오늘은 아주 기초적인 내용이지만 BAT와 CMD의 차이를 설명하겠다. 앞절에서 BAT는 DOS와 9x에서 사용되는 배치 파일이며, CMD는 NT 계열에서 사용되는 배치 파일이라고 얘기했다. 사일 이 것만 알면 물어볼 필요도 없는 질문인 셈이다.

9x에서 사용되는 배치파일이나 NT에서 사용되는 배치파일이나 기본적인 사용법은 같다. 그러나 지원되는 언어와 환경변수는 다소 차이가 있다. 한 예로 DOS의 SET 명령과 NT의 SET 명령을 생각해 보자.

DOS에서 SET은 환경변수를 설정하는 명령에 불과하지만 XP에서 SET은 환경변수의 설정과 사용자 입력을 받아들이는 두가지를 동시에 할 수 있다. 만약 XP의 SET 명령을 사용한 파일을 .BAT라는 확장자를 부여하면 어떻게 될까?

이 배치 파일을 XP에서 사용하면 정상적으로 동작하지만 DOS에서 실행하면 오류가 뜨리라는 것은 당연히 예측할 수 있다. 그러면 이러한 오류를 근본적으로 막는 방법은 DOS에서는 동작하지 않는 파일이라는 것을 파일명을 통해 밝혀주면 된다.

바로 그러한 개념으로 NT의 일괄 처리 파일의 확장자는 BAT가 아닌 CMD로 한 것이다. 반대로 BAT로 작성된 파일은 배치 파일의 실행에 필요한 파일만 있다면 NT에서도 아무런 문제없이 수행할 수 있다주1.

BAT와 CMD는 근본적으로 지원하는 배치언어가 다소 차이가 나며주2, CMD라는 확장자를 갖는 파일은 BAT로 동작하는 OS에서는 정상적으로 동작하지 않을 수 있기때문에 CMD와 BAT로 구분한 것이다. 아울러 자신이 작성한 배치 파일을 DOS나 9x에서 실행할 일이 없다면 이러한 오류를 막기위해 가급적 CMD를 사용하는 것이 좋다.

주1: 모든 NT 시스템은 하드웨어에대한 직접적인 접근을 제한하므로 하드웨어를 직접 접근하는 프로그램은 오류가 발생한다.

주2: 사실 DOS 배치언어의 업버전이 CMD의 배치언어인 셈이다.

댓글: 이 팁은 qrkwk님의 질문, BAT vs CMD에대한 답으로 작성되었습니다.


TC/서비스 플러그인을 도구 막대에 등록하기 File System 플러그인 사용하기에서 언급... (5401) 2005-06-20
작업 관리자 제한하기 NT 계열에 포함된 작업 관리자는 9x 계열에 포함된 작업 관리자... (10524)2005-06-19

QAOS.com에 게시된지 1년 이상된 자료와 관리자가 공개한 자료는 누구나 제한없이 읽을 수 있습니다.
그러나 QAOS.com의 자료를 퍼가는 것은 금지하고 있습니다.

이 정보가 유용하다고 생각되시면 QAOS.com과 많은 다른 사람들을 위해 퍼가기 보다는 링크로 알려주시기 바랍니다.

세상사는 이야기



RSS 구독 (익명 | 회원 | 강좌 | 포럼)
(C) 1996 ~ 2017 QAOS.com All rights reserved.