하드웨어 CMD파일, BAT파일의 차이를 알아보자
2010.10.29 16:32
컴백기념 게시글이랄까..
배치 파일은 도스명령을 순차적으로 실행합니다.
배치파일은 *.cmd, *.bat 이렇게 두가지 확장자로 제작할수 있습니다.
두 확장자의 큰 차이는 없다만 한가지의 차이가 있습니다.
일단 그 차이 전에 한가지를 알아야합니다.
현재 MS Windows에 포함되서 나오는 명령 프롬프트(CMD, Command Prompt)는 기존 MS-DOS엔 없던 여러가지 명령어가 추가되었습니다. 이제 차이점을 설명 드리겠습니다.
*.bat 확장자는 MS-DOS 부터 사용되왔던 확장자입니다. 고로 MS-DOS에서는 *.BAT을 돌릴수 있습니다. 하지만 우리가 Windows에서 실행 되는 명령어라고 해서 MS-DOS에서도 되는 것은 아니죠. 고로 MS-DOS는 BAT 파일 명령을 수행하다가 오류를 내뿜습니다. 반면에 *.cmd 확장자는 MS-DOS시절에는 없던 확장자 이기 때문에 MS-DOS에서 실행을 시도하면 실행 조차 못합니다.
또한 이것은 각종 인수에도 적용이 됩니다.
이 차이점은 큰 차이가 없는것 같죠?
하지만 이렇게 생각해볼게요.
ROBOCOPY를 예로 들어 볼까요?
CMD를 열고 ROBOCOPY /? 를 쳐봅시다
가장 윗줄에
-------------------------------------------------------------------------------
ROBOCOPY :: Windows용 견고한 파일 복사
-------------------------------------------------------------------------------
라고 나옵니다. 그러면 이 ROBOCOPY 명령은 Windows 및 Windows PE에서 사용가능합니다.
그럼 여기서 무엇의 문제점이 발생할까요
먼저 상황은 이렇습니다.
IO.sys, config.sys, autoexec.bat 파일 내용이 개판이 되서 부팅이 안된다. 그러나 복구 스크립트는 있다.
복구스크립트의 개발 환경 : Windows
여기에 따른 해결방법에는
1. MS-DOS 부팅디스크로 부팅하여 미리 짜놓은 배치 스크립트를 작동시킨다.
2. Windows PE 부팅디스크로 부팅하여 미리 짜놓은 배치 스크립트를 작동시킨다.
등이 있습니다.
일단 복구 스크립트의 내용입니다.
del C:\autoexec.bat
del C:\config.sys
del C:\IO.sys
robocopy A:\autoexec.bat C:\
robocopy A:\config.sys C:\
robocopy A:\IO.sys
자 철없게도 로보카피를 이용했네요.
이 스크립트를 MS-DOS 부팅디스크에서 돌리면?
ROBOCOPY 전에 까지는 수행이 되니까 파일들이 삭제되겠죠.
근데 ROBOCOPY에서 에러를 펑!
파일들은 삭제된채 부팅은 더욱 불능이 되겠죠?
그뒤에는 상상에!
한줄 요약
BAT파일과 CMD파일의 차이는 MS-DOS에서 돌아가냐 안돌아가냐 차이다.
댓글 [8]
-
테야 2010.10.29 21:52 -
brucekim 2010.10.30 02:21
맞아여!
예의에 맞는 표현을 써야겠져!
(근데 일부러 그런거 아닌거 같은데 테야님! 걍 넘어가주셈^^)
짱닌텐도님 윈포에 간만에 컴백했어여 ㅋㅋ
우리이뿐 짱닌텐도님!!
-
골수야당 2010.10.30 12:21
"두 확장자의 큰 차이는 없습니다만 한가지의 차이가 있습니다"
이 문장도 그리 매끄러운 표현은 아니라고 봅니다.
"두 확장자의 큰 차이는 없지만 한 가지 차이가 있습니다."
이렇게 하는 것이 더 낫다고 생각합니다.
존댓말도 써야할 때만 사용해야지 중복해서 사용하면 오히려 더 부자연스러운 법입니다. ^^
-
쪼만애 2010.10.30 12:47
오타 일수도 있겠죠..
설마 반말을 썼겠어?.. 이렇게 생각하시는게^^
-
헤헤헤 2010.11.02 13:53
그러게요....그렇게 항상 높임말에 대한것과 맞춤법에 대해서 생각하면서 글들을 쓰고 대화를 하는것도 아닌데 말입니다...
알려주는 선생이 학생들에게 항상 존댓말을 하면서 가르쳐줘야 하나요?
무슨 작가도 아닌데...굳이 그런걸 트집? 잡을 필요는 없다고 생각합니다.
-
게이터 2010.10.30 11:36
중구난방 ^^
-
터치 2010.10.30 21:09 robocopy는 외부명령어입니다.. robocopy.exe 파일이 따로 존재합니다.
Windows 용이니 당연히 MS-DOS에서는 안돌아갈테고 외부에 파일을 넣어도 16비트 환경이니 작동되지 않을겁니다.
차이점을 설명하기에는 좀 부적합한듯하네요..
-
꿀꿀이 2010.11.01 21:55 16비트 리얼도스 : 확장명에 bat만 사용, 명령확장 사용불가, 배치파일 이라고 함
32, 64비트 명령 프롬프트 : 확장명에 bat, cmd 가능, 명령확장 사용가능, 여기서부턴 명령어 스크립트라 함
글의 취지와는 전혀 상관없는 부분에 대해 한가지 말씀드려볼까합니다.
"두 확장자의 큰 차이는 없다만 한가지의 차이가 있습니다"
이 문장이 상당히 부자연스럽습니다.
'없다만'을 '없습니다만'으로 바꿔보겠습니다.
"두 확장자의 큰 차이는 없습니다만 한가지의 차이가 있습니다"
이상하게 요즘 이런 식으로 존댓말을 주로 사용하는 글에서
'했다만,봤다만,그랬다만'과 같은 반말이 자꾸 사용하는 경우가 보입니다.
맞는 표현이 아니며 잘못 됐다 못해 예의에 맞지 않는 표현입니다.
알고 계시라고 한번 말씀 드려봅니다.