명령 인터프리터 cmd.exe새 인스턴스를 시작합니다. 매개 변수 cmd 없이 사용하는 경우 운영 체제의 버전 및 저작권 정보를 표시합니다.
Note
고급 기능을 원하는 사용자는 향상된 스크립팅 및 자동화를 위해 PowerShell 을 살펴보는 것이 좋습니다.
Syntax
cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]
Parameters
| Parameter | Description |
|---|---|
| /c |
<string>가 지정한 명령을 수행한 다음 명령 프로세서를 종료합니다. |
| /k |
<string>가 지정한 명령을 수행하고 명령 프로세서를 계속 실행합니다. |
| /s |
/c 또는 /k와 함께 사용하는 경우, "에서 첫 번째와 마지막 따옴표(<string>)를 없애고 나머지 명령은 그대로 두는 특수한 비-구문 분석 규칙을 트리거합니닫. |
| /q | 에코를 끕니다. |
| /d | AutoRun 명령의 실행을 사용하지 않도록 설정합니다. |
| /a | 명령 출력의 형식을 ANSI(미국 국립 표준 연구소)로 지정합니다. |
| /u | 명령 출력의 형식을 유니코드로 지정합니다. |
/t:{<b><f> | <f>} |
배경색(b)과 전경색(f)을 설정합니다. |
| /e:on | 명령 확장을 사용하도록 설정합니다. |
| /e:off | 명령 확장을 사용하지 않도록 설정합니다. |
| /f:on | 파일과 디렉터리 이름 완성을 사용하도록 설정합니다. |
| /f:off | 파일과 디렉터리 이름 완성을 사용하지 않도록 설정합니다. |
| /v:on | 지연된 환경 변수 확장을 사용하도록 설정합니다. |
| /v:off | 지연된 환경 변수 확장을 사용하지 않도록 설정합니다. |
<string> |
수행하려는 명령을 지정합니다. |
| /? | 명령 프롬프트에 도움말을 표시합니다. |
다음 표에는 <b> 및 <f>의 값으로 사용할 수 있는 유효한 16진수 숫자가 나열되어 있습니다.
| Value | Color |
|---|---|
| 0 | Black |
| 1 | Blue |
| 2 | Green |
| 3 | Aqua |
| 4 | Red |
| 5 | Purple |
| 6 | Yellow |
| 7 | White |
| 8 | Gray |
| 9 | Light blue |
| a | Light green |
| b | Light aqua |
| c | Light red |
| d | Light purple |
| e | Light yellow |
| f | Bright white |
Remarks
명령 출력을 다른 명령의 입력으로 리디렉션하려면 파이프(
|) 연산자를 사용합니다. For example:<command1> | <command2>이중 파이프(
||) 연산자는 이전 명령이 실패한 경우에만 다음 명령을 실행하는 데 사용됩니다. 지정된 시나리오command2에서 실패하는 경우에만command1실행됩니다. For example:<command1> || <command2>명령 출력을 파일로 리디렉션하려면 더 큰 꺾쇠 괄호
>문자를 사용합니다. For example:<command1> > <file1.txt>여러 명령을 그룹화하거나 중첩하려면 .를 사용합니다
&. For example:<command1> & <command2><string>에 여러 명령을 사용하려면 명령 구분 기호&&로 구분합니다. For example:<command1> && <command2> && <command3>Note
사용하는
&&경우 다음&&명령은 이전 명령이 성공적으로 완료된 경우에만 실행됩니다.Cmd는 첫 번째 명령을 실행하고 이전 명령이 성공한 경우에만 다음 명령으로 진행합니다. 그렇지 않으면 이전 명령이 실패하면 후속 명령이 실행되지 않습니다.앰퍼샌드
&, 파이프|및 괄호( )는 인수로 전달할 때 이스케이프 문자 또는 따옴표 앞에 와야 하는 특수 문자^입니다.명령이 작업을 성공적으로 완료하면 종료 코드가 0이거나 종료 코드가 없는 종료 코드를 반환합니다.
디렉터리 경로, 파일 또는 제공한 정보에 공백이 포함된 경우, 텍스트(예:
" ")를 큰따옴표("Computer Name")로 묶어야 합니다. For example:mkdir Test && mkdir "Test 2" && move "Test 2" Test다음 특수 문자는 따옴표로 묶어야 합니다. & <> [ ] | { } ^ = ; ! ' + , ` ~ [공백].
/c또는/k를 지정하면 다음 조건이 모두 충족되는 경우에만cmd프로세스, 나머지<string>, 따옴표가 유지됩니다.-
/s도 사용하지 않습니다. - 정확히 하나의 따옴표 집합만 사용합니다.
- 따옴표 안에는 특수 문자를 사용하지 않습니다( 예: & <> ( ) @ ^ |.
- 따옴표 안에 공백 문자를 하나 이상 사용합니다.
- 따옴표 안의
<string>는 실행 파일의 이름입니다.
이전 조건이 충족되지 않으면 첫 번째 문자를 검사하여 여는 따옴표인지 여부를 확인하여
<string>를 처리합니다. 첫 번째 문자가 여는 따옴표인 경우 닫는 따옴표와 함께 제거됩니다. 닫는 따옴표 뒤에 오는 모든 텍스트는 유지됩니다.-
지정
/dcmd하지 않으면 다음 레지스트리 하위 키를 찾습니다.HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ
레지스트리 하위 키 하나 또는 둘 다 있는 경우 다른 모든 변수 앞에서 실행됩니다.
/e:off를 사용하여 특정 프로세스에 대한 명령 확장을 사용하지 않도록 설정할 수 있습니다. 다음cmd값을 설정하여 컴퓨터 또는 사용자 세션의 모든 명령줄 옵션에 대한 확장을 사용하거나 사용하지 않도록 설정할 수 있습니다.HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD
Regedit.exe 사용하여 레지스트리에서 REG_DWORD 값을 0x1(사용) 또는 0x0(사용 안 함)으로 설정합니다. 사용자 지정 설정이 컴퓨터 설정 보다 우선 하며 명령줄 옵션 레지스트리 설정 보다 우선 합니다.
Caution
레지스트리를 잘못 편집하면 시스템이 심각하게 손상될 수 있습니다. 따라서 레지스트리를 변경하기 전에 컴퓨터의 중요한 데이터를 백업해 두어야 합니다.
명령 확장을 사용하도록 설정하면 다음 명령에 영향이 갑니다.
assoccall-
chdir(cd) color-
del(erase) endlocalforftypegotoif-
mkdir(md) popdpromptpushdsetsetlocalshift-
start(외부 명령 프로세스 변경도 포함)
지연된 환경 변수 확장을 사용하도록 설정하는 경우, 느낌표 문자(
!)를 사용하여 런타임에 환경 변수의 값을 대체할 수 있습니다.파일과 디렉터리 이름 완성은 기본적으로 사용하도록 설정되지 않습니다.
cmd명령의 특정 프로세스에 대해/f:{on | off}으로 파일 이름 완성을 사용하도록 설정하거나 사용하지 않도록 설정할 수 있습니다.다음
cmd값을 설정하여 컴퓨터에 있는 명령의 모든 프로세스 또는 사용자 로그온 세션에 대해 파일 및 디렉터리 이름 완성을 사용하거나 사용하지 않도록 설정할 수 있습니다.HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD
REG_DWORD 값을 설정하려면 Regedit.exe 실행하고 특정 함수에 대한 제어 문자의 16진수 값을 사용합니다(예: 0x9는 TAB이고 0x08는 BACKSPACE입니다). 유효한 제어 문자가 아니므로 공백에 [0x20] 값을 사용합니다. 사용자 지정 설정이 컴퓨터 설정 보다 우선 하며 명령줄 옵션 레지스트리 설정 보다 우선 합니다.
Caution
레지스트리를 잘못 편집하면 시스템이 심각하게 손상될 수 있습니다. 따라서 레지스트리를 변경하기 전에 컴퓨터의 중요한 데이터를 백업해 두어야 합니다.
를 사용하여
/f:on파일 및 디렉터리 이름 완성을 사용하도록 설정하는 경우 디렉터리 이름 완성에는 Ctrl+D 를 사용하고 파일 이름 완성에는 Ctrl+F 를 사용합니다. Ctrl+D와 Ctrl+F 키 조합의 유일한 차이점은 Ctrl+D는 디렉터리 이름에만 일치하고 Ctrl+F는 파일 및 디렉터리 이름과 모두 일치한다는 것입니다. 기본 제공 디렉터리 명령cd,md또는rd에서 파일 및 디렉터리 이름 완성을 사용하면 디렉터리 완성을 가정합니다.Ctrl+D 또는 Ctrl+F를 누르면 파일 및 디렉터리 이름 완성이 처리됩니다. 이러한 키 조합 함수는 하나가 없는 경우에 와일드카드 문자를
<string>에 추가하고, 일치하는 경로 목록을 빌드한 후 일치하는 첫 번째 경로를 표시합니다. 일치하는 경로가 없으면, 파일 및 디렉터리 이름 완성 함수가 경고음을 울리고 디스플레이를 변경하지 않습니다.- 일치하는 경로 목록을 이동하려면 Ctrl+D 또는 Ctrl+F 를 반복해서 누릅니다.
- 목록을 뒤로 이동하려면 Shift 키와 Ctrl+D 또는 Ctrl + F 를 동시에 누릅니다.
- 저장된 일치하는 경로 목록을 삭제하고 새 목록을 생성하려면 편집
<string>하고 Ctrl+D 또는 Ctrl+F를 누릅니다. - Ctrl+D와 Ctrl+F 사이를 전환하면 저장된 일치 경로 목록이 삭제되고 새 목록이 생성됩니다.
파일 및 디렉터리 이름 완성은 일치하는 경로 주위에 따옴표를 배치하는 경우 공백 또는 특수 문자가 포함된 파일 이름을 정확히 처리합니다.
완료가 처리된 지점
<string>에서 파일 및 디렉토리 이름 완성<string>을 처리하는 경우, 커서 오른쪽에 있는 경로의 모든 부분이 삭제됩니다.
환경 변수 사용
cmd 명령 셸 환경은 명령 셸 및 운영 체제의 동작을 결정하는 변수에 의해 정의됩니다. 두 가지 유형의 환경 변수인 시스템 및 로컬을 사용하여 명령 셸 환경 또는 전체 운영 체제 환경의 동작을 정의할 수 있습니다. 시스템 환경 변수는 전역 운영 체제 환경의 동작을 정의합니다. 로컬 환경 변수는 현재 인스턴스의 환경 동작을 정의합니다 cmd.
관리자 권한이 있는 사용자만 시스템 변수를 변경할 수 있습니다. 이러한 변수는 로그온 스크립트에서 가장 일반적으로 사용됩니다. 로컬 환경 변수는 생성된 사용자가 컴퓨터에 로그온한 경우에만 사용할 수 있습니다. HKEY_CURRENT_USER 하이브에 설정된 지역 변수는 현재 사용자에게만 유효하지만 글로벌 운영 체제 환경의 동작을 정의합니다.
다음 목록에서는 우선 순위 내림차순으로 다양한 유형의 변수에 대해 설명합니다.
- 기본 제공 시스템 변수입니다.
- HKEY_LOCAL_MACHINE 하이브에서 발견된 시스템 변수입니다.
- HKEY_CURRENT_USER 하이브에서 발견된 지역 변수입니다.
- Autoexec.bat 파일에 설정된 모든 환경 변수 및 경로입니다.
- 로그온 스크립트에 설정된 모든 환경 변수 및 경로(있는 경우)입니다.
- 스크립트 또는 일괄 처리 파일에서 대화형으로 사용되는 변수입니다.
명령 셸에서 각 인스턴스는 cmd 부모 애플리케이션의 환경을 상속합니다. 따라서 부모 애플리케이션의 환경에 영향을 주지 않고 새 cmd 환경에서 변수를 변경할 수 있습니다.
다음 명령 중 하나를 실행하여 사용자 환경에서 환경 변수를 볼 수 있습니다.
set
Get-ChildItem Env:
환경 변수 설정
변수를 보려면 다음을 입력합니다.
set <VariableName>
변수를 추가하려면 다음을 입력합니다.
set <VariableName>=<value>
변수를 삭제하려면 다음을 입력합니다.
set <VariableName>=
공백을 포함하여 대부분의 문자를 변수 값으로 사용할 수 있습니다. 특수 문자 <, >|, & 또는 ^를 사용하는 경우 이스케이프 문자 ^또는 큰따옴표를 앞에 와야 합니다. 큰따옴표를 사용하는 경우 등호 다음에 있는 모든 항목이 값으로 사용되므로 값의 일부로 포함됩니다. 다음 예제를 고려하세요.
변수 값을 New&Name만들려면 다음을 입력합니다.
set <VariableName>=New^&Name
변수 값을 "New&Name"만들려면 다음을 입력합니다.
set <VariableName>="New&Name"
명령 프롬프트에서 캐럿 set <VariableName>=New&Name 또는 큰따옴표 없이 입력 ^ 하면 다음 오류 메시지가 표시될 수 있습니다.
"'Name' is not recognized as an internal or external command, operable program or batch file."
변수 이름은 대/소문자를 구분하지 않습니다. 그러나 set 변수를 입력한 대로 정확하게 표시합니다. 변수 이름에 대문자와 소문자를 결합하여 코드를 더 읽기 쉽게 만들 수 있습니다( 예: UserName).
Note
- 최대 개별 환경 변수 크기는 8,192바이트입니다.
- 이름, 값 및 등수 기호를 포함한 모든 환경 변수의 최대 총 크기는 프로세스에 대해 65,536자입니다.
환경 변수 값 대체
명령줄 또는 스크립트의 변수 값을 대체하려면 변수 이름을 백분율 기호(%VariableName%)로 묶습니다. 이렇게 하면 cmd 변수 값을 리터럴 텍스트로 처리하는 대신 참조할 수 있습니다. 스크립트가 실행 cmd 되면 변수의 인스턴스를 해당 값으로 바꿉니다. 예를 들어 스크립트에서 %USERNAME% 사용하면 실제 사용자 이름이 자동으로 대체됩니다. 변수 대체는 재귀적이지 않습니다. cmd 변수를 한 번만 확인합니다.