명령 인터프리터 cmd.exe새 인스턴스를 시작합니다. 매개 변수 cmd
없이 사용하는 경우 운영 체제의 버전 및 저작권 정보를 표시합니다.
참고 항목
고급 기능을 더 원하는 사용자는 PowerShell에서 향상된 스크립팅 및 자동화를 찾아보는 것이 좋습니다.
구문
cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]
매개 변수
매개 변수 | 설명 |
---|---|
/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진수 숫자가 나열되어 있습니다.
값 | 색깔 |
---|---|
0 | 검정 |
1 | 파랑 |
2 | 녹색 |
3 | 바다색 |
4 | 빨간색 |
5 | 자주색 |
6 | 노란색 |
7 | 흰색 |
8 (여덟) | 회색 |
9 | 연한 파란색 |
a | 라이트 그린 |
b | 라이트 아쿠아 |
c | 랄이트 레드 |
d | 라이트 퍼플 |
e | 라이트 옐로우 |
f | 브라이트 화이트 |
설명
명령 출력을 다른 명령의 입력으로 리디렉션하려면 파이프(
|
) 연산자를 사용합니다. 예시:<command1> | <command2>
이중 파이프(
||
) 연산자는 이전 명령이 실패한 경우에만 다음 명령을 실행하는 데 사용됩니다. 지정된 시나리오command2
에서 실패하는 경우에만command1
실행됩니다. 예시:<command1> || <command2>
명령 출력을 파일로 리디렉션하려면 더 큰 꺾쇠 괄호
>
문자를 사용합니다. 예시:<command1> > <file1.txt>
여러 명령을 그룹화하거나 중첩하려면 .를 사용합니다
&
. 예시:<command1> & <command2>
<string>
에 여러 명령을 사용하려면 명령 구분 기호&&
로 구분합니다. 예시:<command1> && <command2> && <command3>
참고 항목
사용하는
&&
경우 다음&&
명령은 이전 명령이 성공적으로 완료된 경우에만 실행됩니다.Cmd
는 첫 번째 명령을 실행하고 이전 명령이 성공한 경우에만 다음 명령으로 진행합니다. 그렇지 않으면 이전 명령이 실패하면 후속 명령이 실행되지 않습니다.앰퍼샌드
&
, 파이프|
및 괄호( )
는 인수로 전달할 때 이스케이프 문자 또는 따옴표 앞에 와야 하는 특수 문자^
입니다.명령이 작업을 성공적으로 완료하면 종료 코드가 0이거나 종료 코드가 없는 종료 코드를 반환합니다.
디렉터리 경로, 파일 또는 제공한 정보에 공백이 포함된 경우, 텍스트(예:
" "
)를 큰따옴표("Computer Name"
)로 묶어야 합니다. 예시:mkdir Test && mkdir "Test 2" && move "Test 2" Test
다음 특수 문자는 따옴표로 묶어야 합니다. & <> [ ] | { } ^ = ; ! ' + , ` ~ [공백].
/c
또는/k
를 지정하면 다음 조건이 모두 충족되는 경우에만cmd
프로세스, 나머지<string>
, 따옴표가 유지됩니다.-
/s
도 사용하지 않습니다. - 정확히 하나의 따옴표 집합만 사용합니다.
- 따옴표 안에는 특수 문자를 사용하지 않습니다( 예: & <> ( ) @ ^ |.
- 따옴표 안에 공백 문자를 하나 이상 사용합니다.
- 따옴표 안의
<string>
는 실행 파일의 이름입니다.
이전 조건이 충족되지 않으면 첫 번째 문자를 검사하여 여는 따옴표인지 여부를 확인하여
<string>
를 처리합니다. 첫 번째 문자가 여는 따옴표인 경우 닫는 따옴표와 함께 제거됩니다. 닫는 따옴표 뒤에 오는 모든 텍스트는 유지됩니다.-
지정
/d
cmd
하지 않으면 다음 레지스트리 하위 키를 찾습니다.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 값을 0×1(사용) 또는 0×0(사용 안 함)으로 설정합니다. 사용자 지정 설정이 컴퓨터 설정 보다 우선 하며 명령줄 옵션 레지스트리 설정 보다 우선 합니다.
주의
레지스트리를 잘못 편집하면 시스템이 심각하게 손상될 수 있습니다. 따라서 레지스트리를 변경하기 전에 컴퓨터의 중요한 데이터를 백업해 두어야 합니다.
명령 확장을 사용하도록 설정하면 다음 명령에 영향이 갑니다.
assoc
call
-
chdir
(cd
) color
-
del
(erase
) endlocal
for
ftype
goto
if
-
mkdir
(md
) popd
prompt
pushd
set
setlocal
shift
-
start
(외부 명령 프로세스 변경도 포함)
지연된 환경 변수 확장을 사용하도록 설정하는 경우, 느낌표 문자(
!
)를 사용하여 런타임에 환경 변수의 값을 대체할 수 있습니다.파일과 디렉터리 이름 완성은 기본적으로 사용하도록 설정되지 않습니다.
cmd
명령의 특정 프로세스에 대해/f:{on | off}
으로 파일 이름 완성을 사용하도록 설정하거나 사용하지 않도록 설정할 수 있습니다.컴퓨터에서
cmd
명령의 모든 프로세스 또는 사용자 로그인 세션에 대해 REG_DWORD 값을 사용하여 파일 및 디렉터리 이름 완성을 사용하도록 설정하거나 사용하지 않도록 설정할 수 있습니다.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진수 값을 사용합니다(예: 0×9는 TAB이고 0×08은 BACKSPACE). 유효한 제어 문자가 아니므로 [0×20] 값을 공백에 사용합니다. 사용자 지정 설정이 컴퓨터 설정 보다 우선 하며 명령줄 옵션 레지스트리 설정 보다 우선 합니다.
주의
레지스트리를 잘못 편집하면 시스템이 심각하게 손상될 수 있습니다. 따라서 레지스트리를 변경하기 전에 컴퓨터의 중요한 데이터를 백업해 두어야 합니다.
/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 hive에 설정된 지역 변수는 현재 사용자에 대해서만 유효하지만 전역 운영 체제 환경의 동작을 정의합니다.
다음 목록에서는 우선 순위 내림차순으로 다양한 유형의 변수에 대해 설명합니다.
- 기본 제공 시스템 변수입니다.
- 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).
참고 항목
- 최대 개별 환경 변수 크기는 8,192바이트입니다.
- 이름, 값 및 등수 기호를 포함한 모든 환경 변수의 최대 총 크기는 프로세스에 대해 65,536자입니다.
환경 변수 값 대체
명령줄 또는 스크립트의 변수 값을 대체하려면 변수 이름을 백분율 기호(%VariableName%)로 묶습니다. 이렇게 하면 cmd
변수 값을 리터럴 텍스트로 처리하는 대신 참조할 수 있습니다. 스크립트가 실행 cmd
되면 변수의 인스턴스를 해당 값으로 바꿉니다. 예를 들어 스크립트에서 %USERNAME% 사용하면 실제 사용자 이름이 자동으로 대체됩니다. 변수 대체는 재귀적이지 않습니다. cmd
변수를 한 번만 확인합니다.