Windows 배치 .bat 및 .cmd 파일의 차이점

Siddharth Bishnoi 2023년1월30일
  1. COMMAND.COMcmd.exe의 차이점
  2. Windows 배치 .bat.cmd 파일의 주요 차이점
  3. 결론
Windows 배치 .bat 및 .cmd 파일의 차이점

사용자는 종종 COMMAND.COMcmd.exe를 같은 것으로 간주합니다. 또한 배치 파일에 사용할 확장명 .bat 또는 .cmd에 대해 혼란스러워합니다.

그것들은 같거나 다르며 어떤 확장을 사용하는 것이 중요합니까? 이 모든 질문에 대한 답은 이 기사에서 논의됩니다.

배치 파일을 실행하면 명령 프롬프트에서 실행됩니다. 배치 파일은 대부분 Windows NT 버전의 cmd.exe에서 실행됩니다.

이전 버전에서는 COMMAND.COM 쉘에서 실행됩니다.

COMMAND.COMcmd.exe의 차이점

COMMAND.COMcmd.exe는 MS-DOS 및 Windows용 명령 인터프리터 버전입니다. COMMAND.COM은 16비트 프로그램을 실행하도록 설계된 명령줄 셸입니다. 부팅 후 가장 먼저 실행되는 DOS 프로그램으로 AUTOEXEC.BAT 구성 파일을 실행하여 시스템을 설정합니다.

MS-DOS, Windows 95-98 및 Windows ME용으로 1980년에 처음 출시되었습니다. 16비트 프로그램으로 실행되도록 설계된 이전 프로그램에만 호환되고 유용하며 그 이후로 업데이트되지 않았습니다.

커맨드닷컴

반면에 cmd.exeCOMMAND.COM의 후속 제품입니다. 32비트 프로그램용으로 설계되었으며 OS/2, Windows NT 및 Windows CE용으로 1987년에 출시되었습니다.

COMMAND.COM에 비해 cmd.exe는 자세한 오류 메시지와 같은 더 나은 확장을 제공하고 명령 기록을 확인하는 화살표 키를 지원하며 지연된 변수 확장을 지원하고 내부 명령을 개선했습니다.

cmd.exe

배치 파일은 명령을 저장하고 명령줄 인터프리터에 의해 직렬 순서로 실행할 수 있는 스크립트 파일입니다. .bat 파일 이름 확장자는 MS-DOS 및 Windows에서 사용되며 배치 파일에 사용된 첫 번째 확장자였습니다. 반면 .cmd는 Windows NT 제품군 및 OS/2에서 사용되었습니다.

.cmd 파일은 COMMAND.COM이 이 확장자를 인식하지 못하기 때문에 cmd.exe에서만 실행할 수 있습니다.

이 튜토리얼은 .bat.cmd 파일의 주요 차이점을 설명합니다.

Windows 배치 .bat.cmd 파일의 주요 차이점

.bat.cmd의 근본적인 주요 차이점은 아래에서 설명합니다.

ERRORLEVEL 처리

.bat.cmd는 ERRORLEVEL 변수를 다르게 처리합니다. ERRORLEVEL이 호출되면 .bat는 실제 오류가 발생한 경우에만 상태를 변경합니다. 즉 append, dpath, ftype, set, path, assoc, .bat는 ERRORLEVEL을 설정하지 않습니다.

그러나 .cmd의 경우 실제 오류와 상관없이 ERRORLEVEL로 설정됩니다. 성공적으로 실행된 후에도 ERRORLEVEL을 0으로 재설정합니다.

간혹 스크립트 작성 시 혼동을 일으키기도 하므로 사용자가 주의해야 합니다.

실행 명령

환경 변수 PATHEXT는 실행 순서를 제어합니다. 실행은 PATHEXT 변수에 저장된 변수의 순서에 따라 다릅니다.

.bat.cmd 스크립트가 모두 동일한 폴더에 저장되어 있는 경우 확장자 없이 스크립트를 실행하면 .bat 파일이 먼저 실행되고 그 다음 .cmd 파일이 실행됩니다. PATHEXT 변수의 기본 순서는 다음과 같습니다.

ECHO %PATHEXT%

pathext 변수

그러나 PATHEXT 변수에서 확장의 순서를 변경할 수 있습니다. PATHEXT 변수를 삭제하더라도 순서는 Windows의 MS-DOS 버전과 동일합니다.

지원하다

Windows 버전 지원과 관련하여 .cmd 파일은 .bat 파일의 경우와 동일하지 않은 거의 모든 Windows 버전에서 지원됩니다. .bat는 처음에 MS-DOS용으로 개발된 반면 .cmd는 Windows NT용으로 개발되었으므로 .cmd 파일은 Windows NT가 아닌 시스템에서 실행되지 않습니다.

.bat에 대한 스크립팅은 .cmd에 비해 더 오래되었습니다. 그리고 .cmd.bat 파일과 비교할 때 이전 버전과 호환됩니다.

보안

보안과 관련하여 .cmd.bat보다 안전합니다. .bat 파일의 명령은 직렬 방식으로 저장되고 명령을 한 줄씩 실행하기 때문에 보안 공격에 더 취약합니다. .cmd 파일은 명령을 순차적으로 실행하지 않으므로 .bat 파일보다 안전합니다.

.cmd 파일은 .cmd 파일을 보고, 설치하고, 실행할 수 있는 애플리케이션을 통해 Android에서도 사용할 수 있습니다. ‘.bat’ 파일은 Android에서 지원되지 않습니다.

언어

.bat 파일에는 MS-DOS용으로 이전에 개발된 이전 버전의 Microsoft 언어가 있습니다. .cmd는 최신 버전의 Windows용으로 개발된 프로그래밍 언어 및 인터프리터입니다.

확장자 없이 배치 파일을 실행하면 .bat로 실행되는 반면 .cmd 파일 확장자의 경우 파일 이름을 filename.cmd로 입력해야 합니다. 이 경우는 두 확장자의 파일 이름이 동일한 경우에만 적용됩니다. .cmd는 파일을 실행하기 위해 확장자를 제공해야 하는 반면 .bat 파일은 확장자 없이 프로그램을 직접 실행합니다.

아래 이미지에서 볼 수 있듯이 testfile이라는 파일 이름과 확장자가 .bat.cmd인 두 개의 배치 파일이 있습니다. .bat 파일은 Windows 배치 파일로 저장되고 .cmd는 Windows 명령 스크립트로 저장됩니다.

동일한 파일 이름의 배치 파일

.bat 파일 실행:

실행중인 박쥐 파일

.cmd 파일 실행:

cmd 파일 실행

근무 환경

.bat 파일은 32비트 Windows에서 16비트 프로그램을 실행하는 Windows 프로세스인 NTVDM 환경에서 실행되도록 설계되었습니다. NTVDM은 Windows NT Virtual DOS Machine의 약자로 ntvdm.exe로 실행됩니다.

시스템의 중요한 프로그램으로 프로그램의 안정적인 실행을 위해 제거되어서는 안됩니다. .bat 파일은 이 환경에서 실행되므로 모든 환경에서 지원되지만 .cmd 파일은 16비트 환경에서 실행할 수 없습니다.

또한 .cmd 파일은 실행 전에 메모리에 저장되는 반면 .bat 파일은 메모리에 저장하지 않고 명령을 한 줄씩 실행합니다.

통역사

.bat 파일 확장자를 가진 배치 파일은 COMMAND.COMcmd.exe에서 모두 실행할 수 있지만 두 인터프리터는 파일을 다르게 실행합니다. .cmd 파일은 cmd.exe에서만 실행됩니다.

COMSPEC 환경 변수는 배치 파일에 대한 명령줄 인터프리터를 시작하는 데 사용됩니다. 기본적으로 MS-DOS와 같은 이전 버전의 경우 COMMAND.COM으로 설정됩니다.

Windows NT부터 기본값은 cmd.exe입니다. 내용을 보려면 다음 명령을 실행하십시오.

ECHO %COMSPEC%

compspec 변수

따라서 최신 버전의 Windows는 cmd.exe에서 실행됩니다. 그러나 이전 버전에서는 .bat 파일만 실행됩니다.

결론

따라서 배치 파일 확장자 .bat.cmd의 주요 차이점에 대해 논의했습니다. 둘 다 서로 장단점이 있습니다.

결론적으로 .bat 파일에서 작동하는 모든 것은 .cmd 파일에서도 작동해야 합니다. .cmd 파일은 .bat 파일보다 빠르고 안정적입니다.

올바른 확장을 사용하는 것은 요구 사항에 따라 다릅니다. 그러나 최신 버전의 경우 .cmd 파일 확장자를 사용하는 것이 좋습니다.

관련 문장 - Batch CMD