Cmd.exe
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
cmd.exe는 윈도우 운영 체제의 명령 인터프리터로, COMMAND.COM과 호환성을 가지면서도 다양한 확장 기능을 제공한다. 주요 기능으로는 상세한 오류 메시지, 화살표 키를 이용한 명령 기록 스크롤, 명령 줄 완성, 이스케이프 문자 처리, 배치 처리에서의 변수 지연 확장 등이 있다. 또한, 디렉터리 이동, 파일 관리, 시스템 설정 등 다양한 작업을 수행하는 내부 명령어를 제공하며, 윈도우 탐색기와의 통합을 통해 사용 편의성을 높였다. cmd.exe는 유니코드를 지원하지만, 배치 파일은 ANSI 코드 페이지를 사용하며, PowerShell이 cmd.exe의 후속 기술로 평가받지만, cmd.exe는 여전히 윈도우 시스템에서 중요한 역할을 하고 있다.
더 읽어볼만한 페이지
- OS/2 파일 - CONFIG.SYS
CONFIG.SYS는 DOS 운영체제에서 장치, 응용 프로그램, 메모리 관리자 등을 구성하는 파일로, 부팅 시 시스템 드라이브에서 읽혀져 장치 드라이버 로드, 메모리 설정, 셸 프로그램 지정 등의 역할을 수행하며, 일부 버전에서는 대체 파일명을 사용하거나 시동 메뉴를 구성하는 기능도 제공한다. - 셸 - 파워셸
파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다. - 셸 - COMMAND.COM
COMMAND.COM은 MS-DOS 운영체제에서 명령줄 인터페이스를 제공하는 명령어 해석기로, 파일 관리 및 프로그램 실행 등의 작업을 수행하며, 윈도우 9x에서 MS-DOS 호환성을 위해, FreeDOS에서는 핵심 구성 요소로 사용된다. - OS/2 명령어 - 파일 전송 프로토콜
파일 전송 프로토콜(FTP)은 클라이언트-서버 모델 기반으로 네트워크를 통해 파일을 전송하는 표준 통신 규약이며, 명령 연결과 데이터 연결을 사용하고, 보안 취약점 때문에 암호화된 방식 사용이 권장된다. - OS/2 명령어 - CHKDSK
CHKDSK는 디스크의 파일 시스템 무결성을 검사하고 오류를 수정하는 시스템 도구로, 다양한 운영체제에서 구현되었으며 파일 시스템 오류 수정 및 손상된 파일 조각 복구 기능을 제공하지만 데이터 손상이나 시스템 불안정을 야기할 수 있다는 비판도 있다.
Cmd.exe - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
이름 | 명령 프롬프트 (cmd.exe) |
다른 이름 | 윈도우 명령어 처리기 (Windows Command Processor) |
개발자 | 마이크로소프트, IBM, ReactOS 기여자 |
출시일 | 1987년 12월 |
대체 대상 | COMMAND.COM |
운영 체제 | 윈도우 NT 계열 윈도우 CE OS/2 eComStation ArcaOS ReactOS |
플랫폼 | IA-32 x86-64 ARM 아이테니엄 (과거 DEC 알파, MIPS, PowerPC) |
장르 | 명령 줄 인터프리터 |
2. 확장
Therese Stowell이 `cmd.exe`의 첫 버전을 개발했다.[23] `cmd.exe`는 많은 내부 명령어를 가지고 있으며, OS/2 및 윈도우 NT 버전에서는 `COMMAND.COM`보다 더 자세한 오류 메시지를 제공한다. `help` 명령어를 통해 오류 메시지의 번호와 함께 추가 정보를 얻을 수 있다.[23]
`cmd.exe`는 도스 프로그램인 `COMMAND.COM`와 달리 플랫폼에 기본으로 제공되는 프로그램이므로, 명령 파이프라인에서 실제 파이프를 사용하여 파이프라인의 양쪽을 동시에 실행할 수 있다. 그 결과, `COMMAND.COM`과 달리 표준 오류를 리다이렉트할 수 있다.[23]
`cmd.exe`는 도스와 같은 명령 줄 해석기 역할을 하는 윈도우 프로그램으로, `COMMAND.COM`과 호환되지만 몇 가지 확장 기능을 제공한다.[23]
2. 1. COMMAND.COM과의 비교
`cmd.exe`는 `COMMAND.COM`과 대부분 호환되지만, 다음과 같은 확장 기능을 제공한다.[7]- `COMMAND.COM`의 "잘못된 명령 또는 파일 이름"과 같은 단순한 오류 메시지보다 더 자세한 오류 메시지를 제공한다.
- 화살표 키를 사용하여 명령 기록을 스크롤하는 것을 지원한다. (DOS에서는 이 기능은 DOSKEY라는 외부 구성 요소를 통해서만 사용할 수 있었다.)
- 파일 및 폴더 경로에 대한 회전식 명령줄 완성을 지원한다.
- 캐럿(`^`) 문자를 이스케이프 문자로 처리한다.
- 지연 변수 확장을 지원한다.
내부 명령어 개선사항은 다음과 같다.
- `DELTREE` 명령은 `RD` 명령의 `/S` 스위치의 일부로 병합되었다.
- `SETLOCAL` 및 `ENDLOCAL` 명령은 환경 변경의 범위를 제한한다.
- `CALL` 명령은 배치 파일 내에서 서브루틴을 허용한다.
- `SET` 명령에 대한 파일 이름 파서 확장은 C 셸과 유사하다.
- `SET` 명령은 식 평가를 수행할 수 있다.
- `FOR` 명령의 확장은 파일 이름 외에도 파일 및 임의 집합 구문 분석을 지원한다.
- 새로운 `PUSHD` 및 `POPD` 명령은 웹 브라우저 또는 파일 탐색기의 "앞으로" 및 "뒤로" 버튼과 유사하게 탐색된 경로를 넘어 접근할 수 있는 기능을 제공한다.
- 조건부 `IF` 명령은 대소문자를 구분하는 문자열 비교 외에도 대소문자를 구분하지 않는 비교 및 숫자 같음 및 다름 비교를 수행할 수 있다.
3. 명령어
cmd.exe는 파일 시스템 탐색, 파일 관리, 시스템 설정 등 다양한 작업을 수행할 수 있는 여러 내부 명령어를 제공한다. 다음은 명령어의 일부 예시이다.
명령어 | 설명 |
---|---|
ASSOC | 파일 확장명 연결을 보여주거나 수정한다. |
ATTRIB | 파일 속성을 표시하거나 바꾼다. |
BREAK | 확장된 CTRL+C 검사를 설정하거나 지운다. |
BCDBOOT | 시동 구성 데이터를 관리한다. |
BCDEDIT | 부팅 로딩을 제어하기 위해 부팅 데이터베이스에서 속성을 설정한다. |
CACLS | 파일의 접근 제어 목록(ACL)을 표시하거나 수정한다. |
CALL | 한 일괄 프로그램에서 다른 일괄 프로그램을 호출한다. |
CD(CHDIR) | 현재 디렉터리 이름을 보여주거나 바꾼다. |
CHCP | 활성화된 코드 페이지의 번호를 표시하거나 설정한다. |
CHKDSK | 디스크를 검사하고 상태 보고서를 표시한다. |
CHKNTFS | 부팅하는 동안 디스크 확인을 화면에 표시하거나 변경한다. |
CLS | 화면을 지운다. |
CMD | Windows 명령 인터프리터의 새 인스턴스를 시작한다. |
COLOR | 콘솔의 기본색과 배경색을 설정한다. |
COMP | 두 개 또는 여러 개의 파일을 비교한다. |
COMPACT | NTFS 분할 영역에 있는 파일의 압축을 표시하거나 변경한다. |
CONVERT | FAT 볼륨을 NTFS로 변환한다. 현재 드라이브는 변환할 수 없다. |
COPY | 하나 이상의 파일을 다른 위치로 복사한다. |
DATE | 날짜를 보여주거나 설정한다. |
DEL(ERASE) | 하나 이상의 파일을 지운다. |
DIR | 디렉터리에 있는 파일과 하위 디렉터리 목록을 보여준다. |
DISKPART | 디스크 파티션 속성을 표시하거나 구성한다. |
DOSKEY | 명령줄을 편집하고, Windows 명령을 다시 호출하고, 매크로를 만든다. |
DRIVERQUERY | 현재 장치 드라이버 상태와 속성을 표시한다. |
ECHO | 메시지를 표시하거나 ECHO를 켜거나 끈다. |
ENDLOCAL | 배치 파일에서 환경 변경의 지역화를 끝낸다. |
EXIT | CMD.EXE 프로그램(명령 인터프리터)을 종료한다. |
FC | 두 파일 또는 파일 집합을 비교하여 다른 점을 표시한다. |
FIND | 파일이나 출력에서 텍스트 문자열을 검색한다. |
FINDSTR | 파일이나 출력에서 문자열을 검색한다. FIND와 달리 간단한 정규식을 지원한다. |
FOR | 파일 집합의 각 파일에 대해 지정된 명령을 실행한다. |
FORMAT | Windows에서 사용할 디스크를 포맷한다. |
FSUTIL | 파일 시스템 속성을 표시하거나 구성한다. |
FTYPE | 파일 확장명 연결에 사용되는 파일 형식을 표시하거나 수정한다. |
GOTO | Windows 명령 인터프리터가 일괄 프로그램에서 이름표가 붙여진 줄로 이동한다. |
GPRESULT | 컴퓨터 또는 사용자에 대한 그룹 정책 정보를 표시한다. |
GRAFTABL | Windows가 그래픽 모드에서 확장 문자 세트를 표시할 수 있게 한다. |
HELP | Windows 명령에 대한 도움말 정보를 제공한다. |
ICACLS | 파일과 디렉터리에 대한 ACL을 표시, 수정, 백업 또는 복원한다. |
IF | 일괄 프로그램에서 조건 처리를 수행한다. |
LABEL | 디스크의 볼륨 이름을 만들거나, 바꾸거나, 지운다. |
MD(MKDIR) | 디렉터리를 만든다. |
MKLINK | 바로 가기 링크와 하드 링크를 만든다. |
MODE | 시스템 장치를 구성한다. |
MORE | 출력을 한번에 한 화면씩 표시한다. |
MOVE | 하나 이상의 파일을 한 디렉터리에서 다른 디렉터리로 이동한다. |
OPENFILES | 파일 공유에서 원격 사용자에 의해 열린 파일을 표시한다. |
PATH | 실행 파일의 찾기 경로를 표시하거나 설정한다. |
PAUSE | 배치 파일의 처리를 일시 중단하고 메시지를 표시한다. |
POPD | PUSHD에 의해 저장된 현재 디렉터리의 이전 값을 복원한다. |
텍스트 파일을 인쇄한다. | |
PROMPT | Windows 명령 프롬프트를 변경한다. |
PUSHD | 현재 디렉터리를 저장한 다음 변경한다. |
RD(RMDIR) | 디렉터리를 제거한다. |
RECOVER | 불량이거나 결함이 있는 디스크에서 읽을 수 있는 정보를 복구한다. |
REM | 배치 파일 또는 CONFIG.SYS에 주석을 기록한다. |
REN(RENAME) | 파일 이름을 바꾼다. |
REPLACE | 파일을 바꾼다. |
ROBOCOPY | 파일과 디렉터리 트리를 복사할 수 있는 고급 유틸리티이다. |
SET | Windows 환경 변수를 표시, 설정 또는 제거한다. |
SETLOCAL | 배치 파일에서 환경 변경의 지역화를 시작한다. |
SC | 서비스(백그라운드 프로세스)를 표시하거나 구성한다. |
SCHTASKS | 컴퓨터에서 실행할 명령과 프로그램을 예약한다. |
SHIFT | 배치 파일에서 바꿀 수 있는 매개 변수의 위치를 바꾼다. |
SHUTDOWN | 컴퓨터의 로컬 또는 원격 종료를 허용한다. |
SORT | 입력을 정렬한다. |
START | 지정한 프로그램이나 명령을 실행할 별도의 창을 시작한다. |
SUBST | 경로를 드라이브 문자에 연결한다. |
SYSTEMINFO | 컴퓨터별 속성과 구성을 표시한다. |
TASKLIST | 서비스를 포함하여 현재 실행 중인 모든 작업을 표시한다. |
TASKKILL | 실행 중인 프로세스나 응용 프로그램을 중단한다. |
TIME | 시스템 시간을 표시하거나 설정한다. |
TITLE | CMD.EXE 세션에 대한 창 제목을 설정한다. |
TREE | 드라이브 또는 경로의 디렉터리 구조를 그래픽으로 표시한다. |
TYPE | 텍스트 파일의 내용을 표시한다. |
VER | Windows 버전을 표시한다. |
VERIFY | 파일이 디스크에 올바로 기록되었는지 검증할지 여부를 지정한다. |
VOL | 디스크 볼륨 레이블과 일련 번호를 표시한다. |
XCOPY | 파일과 디렉터리 트리를 복사한다. |
WMIC | 대화형 명령 셸 내의 WMI 정보를 표시한다. |
`&&` 기호를 사용하여 여러 명령어를 한 줄에 연결할 수 있다.[7] 예를 들어, `CommandA && CommandB && CommandC`는 CommandA가 성공해야 CommandB가 실행되고, CommandB가 성공해야 CommandC가 실행되는 구조이다. 이전 명령어의 성공 여부와 관계없이 다음 명령어를 실행하려면 `&` 기호를 사용한다.[8]
윈도우 XP 이상에서 명령 프롬프트에서 사용할 수 있는 문자열의 최대 길이는 8191자이다.[9] 윈도우 2000 또는 윈도우 NT 4.0과 같은 이전 버전에서는 문자열의 최대 길이가 2047자이다.[9]
다음 특수 문자는 따옴표로 묶어야 한다:[7] & < > [ ] { } ^ = ; ! ' + , ` ~ (공백)
4. 커맨드 라인 2.0 업데이트 (윈도우 10)
윈도우 10부터 명령 프롬프트의 커맨드 라인 버전이 업데이트되었다. 명령 프롬프트 속성에서 '레거시 콘솔 사용'을 해제하면 사용할 수 있는 기능들이 추가되었다.[24]
- 투명도 설정
- 키의 일반적인 사용 설정
- 사용 허용됨 (Windows 7에서는 실행되지 않았다. 도 작동되지 않는다. Windows 10은 도 잘 작동한다(OS 단축키로 등록).)
5. 윈도우 탐색기와의 통합
윈도우 7 윈도우 탐색기에서는 Shift 키를 누른 채 상황 메뉴를 표시하면 "여기에 명령 창 열기"라는 메뉴 명령이 나타난다[19]。 이 명령을 실행하면, 지정 폴더를 현재 디렉터리로 설정한 상태로 명령 프롬프트를 시작할 수 있다.
윈도우 8.1에서는 시작 메뉴를 마우스 오른쪽 버튼으로 클릭하거나, 윈도우 키를 누른 채 X 키를 누르면 시스템 명령 메뉴가 표시되며, 명령 프롬프트를 일반 권한 또는 관리자 권한으로 시작할 수 있다.
윈도우 10 크리에이터스 업데이트 (버전 1703)에서는 기본 명령 셸이 PowerShell로 대체되었다. 탐색기에서 Shift 키를 누른 채 상황 메뉴를 표시하면 "여기에 PowerShell 창 열기"라는 메뉴 명령이 나타나며, 시스템 명령 메뉴에는 명령 프롬프트 대신 PowerShell이 표시된다. 하지만 설정 변경을 통해 이전과 같이 명령 프롬프트를 시스템 명령 메뉴에 표시하는 것도 가능하다[20]。
6. 문자 코드
cmd.exe 자체는 유니코드(UTF-16)를 사용하지만, 배치 파일은 COMMAND.COM과의 호환성을 위해 시스템 로캘 설정(유니코드 비대응 프로그램의 언어)에 따른 "ANSI 코드 페이지"로 인코딩되어 해석된다.[18] 예를 들어, 한국어 시스템 로캘에서는 CP949 (EUC-KR 확장)가 사용된다.
명령 프롬프트에 내장된 '''내부 명령'''(예: `type`, `dir`)은 유니코드 출력과 ANSI 코드 페이지 출력을 모두 지원한다.[21] 단독 실행 시 화면 표시는 유니코드로, 리다이렉션이나 파이프를 이용한 출력은 ANSI 코드 페이지로 변환되어 출력된다.
'''외부 명령'''의 출력 문자 코드는 해당 외부 명령의 구현에 따라 다르며, 일반적으로 명령 개발자는 CLI 명령의 출력을 유니코드 모드로 수행할지, MBCS 모드로 수행할지를 선택할 수 있다.
7. 후속 및 미래
cmd.exe의 후속 기술은 .NET Framework/.NET Core를 기반으로 하는 객체 지향 언어인 PowerShell이다. PowerShell은 Windows 명령에 비해 높은 유연성과 기술성을 제공한다. 몇몇 Windows 명령에 대해서는 호환 별칭이 제공되는 등 어느 정도의 호환성을 가지고 있지만, 완전한 상위 호환은 아니며 명령 프롬프트와는 여전히 공존 관계에 있다. 마이크로소프트(Microsoft)는 cmd.exe 폐지 소문에 대해 전면 부인하며, Windows 자체를 빌드 및 테스트하기 위해 자동화된 시스템에서 cmd.exe에 의존하는 다수의 스크립트가 이용되고 있다는 점 등을 들어 향후 Windows에서 제거될 일은 없을 것이라고 밝혔다.[18]
참조
[1]
웹사이트
Notes on using the default OS/2 command processor (CMD.EXE)
http://www.tavi.co.u[...]
[2]
웹사이트
Command Processor Shell (Windows CE .NET 4.2)
https://docs.microso[...]
2006-06-30
[3]
웹사이트
Command Processor Shell (Windows CE 5.0)
https://docs.microso[...]
2012-09-14
[4]
웹사이트
Command Processor Shell (Windows Embedded CE 6.0)
https://docs.microso[...]
2012
[5]
서적
Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft
https://archive.org/[...]
The Free Press
1994
[6]
서적
Programming Microsoft Windows CE
Microsoft Press
[7]
웹사이트
cmd
https://docs.microso[...]
2023-09-12
[8]
웹사이트
Command Redirection, Pipes - Windows CMD - SS64.com
https://ss64.com/nt/[...]
2021-09-23
[9]
문서
Command prompt (Cmd.exe) command-line string limitation
https://support.micr[...]
[10]
서적
Microsoft Operating System/2 User's Reference
http://www.os2museum[...]
Microsoft
1987
[11]
서적
Windows NT Shell Scripting
https://archive.org/[...]
Macmillan Technical Publishing
1998
[12]
웹사이트
Command Processor Commands (Windows CE .NET 4.2)
https://docs.microso[...]
2006-06-30
[13]
웹사이트
Command Processor Commands (Windows CE 5.0)
https://docs.microso[...]
2012-09-14
[14]
웹사이트
Command Processor Commands (Windows Embedded CE 6.0)
https://docs.microso[...]
2012-01-05
[15]
웹사이트
reactos/reactos
https://github.com/r[...]
2021-12-04
[16]
문서
cmd.exeの実行ファイルのプロパティにおける「説明」欄は、英語版では「Windows Command Processor」、日本語版では「Windows コマンド プロセッサ」となっている。
[17]
웹사이트
[速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016
https://www.publicke[...]
2020-01-21
[18]
문서
Rumors of Cmd’s death have been greatly exaggerated | Windows Command Line
https://devblogs.mic[...]
[19]
문서
Windowsスマートチューニング(72) Win 7編: <コマンドウィンドウをここで開く>を常に表示し、コマンドプロンプトを簡単起動する | マイナビニュース
https://news.mynavi.[...]
[20]
문서
コマンド プロンプトは PowerShell に置き換えられます
https://support.micr[...]
[21]
문서
Cmd | Microsoft Docs
https://docs.microso[...]
[22]
문서
_setmode | Microsoft Docs
https://docs.microso[...]
[23]
서적
Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft
https://archive.org/[...]
[24]
뉴스
MS, 윈도우10에 커맨드라인 2.0 투입
http://www.zdnet.co.[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com