티스토리 뷰

출처 : http://windowsissue.com/44

 

도스 시절에 AUTOEXEC.BAT라는 배치 명령어가 있었습니다. 지금의 시작 프로그램 목록과 비슷한 역활인데, 주로 하던 일이 자주 쓰는 폴더의 PATH를 지정하거나, 시스템의 몇 가지 환경 변수를 설정하고, 백신 같은 램 상주 프로그램을 등록 해 주는 일들이 주된 용도였습니다.

Array
한 땐 요런걸 조물딱거리던게 시스템 튜닝이었다는...

Windows 환경으로 넘어오면서 명령 프롬프트(도스 때부터 사용했던 분들은 여전히 "도스창" 이라고 부르기도 하지만)를 사용하는 일은 점점 줄어들긴 했지만... Vista에서도 여전히 존재하는 것은 분명히 이유가 있는 것 같습니다.

일단 Windows UI상에는 구현되어 있지 않은 프롬프트에서만 할 수 있는 명령어가 많이 존재하고 있는 것이 가장 큰 이유일 겁니다. 모든 기능을 Windows UI 로 구현하는 것도 현실적으로 무리가 있어 보이지만, 그런 이유보다는 시스템에서 중요한 관리 기능들은 고급 사용자들만 쓸 수 있게 끔 해 놓았다고 보는게 더 신빙성 있어 보입니다. 물론 저같이 마우스보다 키보드가가 더 편하다는 사람들을 위해서 남겨 뒀을지도 모르겠지만(설마...), 무엇보다 Microsoft가 DOS로 성장한 회사라서 옛 자취를 남겨두고 있는 것인지도.... ^^;;;

재밋는건 Windows UI가 제거되고 오직 명령 프롬프트로만 동작하는 Windows Server 2008 에디션이 하나 나올 거라고 하는군요. 마치 리눅스 처럼 말이죠. Windows에도 복구 바람이 부는건 아닌가 모르겠습니다.

암튼 사담이 길었네요. 본론으로 들어가서....

저 같은 경우는 Windows에서 명령 프롬프트 사용하면서 제가 가장 불편했던 것은 autoexec.bat를 쓸 수 없었다는 문제였는데요... 명령창에서 주로 사용하는 디렉터리를 path 설정 해두지 못하는 것이 가장 불편했습니다. 특히 WAIK를 사용할 때 도구들이 C:Program FilesWindows AIKToolsx86 이렇게 깊이 들어가서 실행해야합니다. 탭 완성이라는 편리한 기능이 있지만 path 설정하면 전혀 신경 쓸 일이 없습니다.

그래서 명령 프롬프트가 실행 될 때 명령어가 실행되도록 하는 팁을 소개합니다.

개요

HKEY_LOCAL_MACHINESOFTWAREMicrosoftCommand Processor에 AutoRun 이라는 문자열 키를 생성하고 실행될 명령어를 키 값으로 레지스트리 키를 만들면 매번 창이 열릴 때 마다 한 줄의 커맨드가 먼저 실행됩니다.

위치 : HKEY_LOCAL_MACHINESOFTWAREMicrosoftCommand Processor

키 값 이름 : AutoRun

종류 : REG_SZ

키 값 : 명령어

다만 이 창은 커맨드 창에서 먼저 실행 되면서 따로 실행 화면이 보이지 않습니다.
즉 "@ECHO OFF" 같은게 필요 없습니다.

1. PATH 설정하기

C:Program FilesWindows AIKToolsx86를 path 설정하고 싶다면, 다음과 같이 키를 생성합니다.

Array

2. Windows CMD에서 autoexec.cmd 배치 파일 실행하기

명령어가 여러줄이 된다면 배치파일을 만들어서 실행하면 됩니다. autoexec.bat와 구분 짓도록 autoexec.cmd로 배치 파일을 만들어 보겠습니다.

예) 명령 프롬프트가 시작 될 때 마다 사용자 계정에 있는 autoexec.cmd를 실행하기

다 음과 같이 배치 파일을 먼저 작성 해 줍니다. 아래 사진은 프롬프트와 path를 바꾸도록 작성하는 것입니다. 사용자 계정에 autoexec.cmd가 생성하였습니다. 보통 루트에 작성하지만, Windows Vista에서는 명령어창을 관리자로 열어야 하기 때문에 사용자 계정에 작성하였습니다.

Array

이제 배치파일이 실행되도록 레지스트리를 변경합니다. 레지스트리 편집기를 열어서 AutoRun 키를 생성하고 배치 파일 경로를 입력합니다.

Array

이제 명령 프롬프트를 열 때마다 배치 파일이 자동으로 실행됩니다. 예제대로 했다면 프롬프트가 이렇게 바뀌어 있을 겁니다.

Array