다음을 통해 공유


cmd

명령 인터프리터 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>를 처리합니다. 첫 번째 문자가 여는 따옴표인 경우 닫는 따옴표와 함께 제거됩니다. 닫는 따옴표 뒤에 오는 모든 텍스트는 유지됩니다.

  • 지정 /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 값을 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+DCTRL+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+DCTRL+F 사이를 전환하면 저장된 일치하는 경로 목록이 삭제되고 새 목록이 생성됩니다.
  • 파일 및 디렉터리 이름 완성은 일치하는 경로 주위에 따옴표를 배치하는 경우 공백 또는 특수 문자가 포함된 파일 이름을 정확히 처리합니다.

  • 완료가 처리된 <string> 지점의 <string> 안에서 파일 및 디렉터리 이름 완성을 처리하는 경우 커서 오른쪽에 있는 경로의 모든 부분이 삭제됩니다.

환경 변수 사용

cmd 명령 셸 환경은 명령 셸 및 운영 체제의 동작을 결정하는 변수에 의해 정의됩니다. 두 가지 유형의 환경 변수인 시스템 및 로컬을 사용하여 명령 셸 환경 또는 전체 운영 체제 환경의 동작을 정의할 수 있습니다. 시스템 환경 변수는 전역 운영 체제 환경의 동작을 정의합니다. 로컬 환경 변수는 현재 인스턴스의 환경 동작을 정의합니다 cmd.

관리자 권한이 있는 사용자만 시스템 변수를 변경할 수 있습니다. 이러한 변수는 로그온 스크립트에서 가장 일반적으로 사용됩니다. 로컬 환경 변수는 생성된 사용자가 컴퓨터에 로그온한 경우에만 사용할 수 있습니다. HKEY_CURRENT_USER hive에 설정된 지역 변수는 현재 사용자에 대해서만 유효하지만 전역 운영 체제 환경의 동작을 정의합니다.

다음 목록에서는 우선 순위 내림차순으로 다양한 유형의 변수에 대해 설명합니다.

  1. 기본 제공 시스템 변수입니다.
  2. HKEY_LOCAL_MACHINE 하이브에 있는 시스템 변수입니다.
  3. HKEY_CURRENT_USER 하이브에 있는 지역 변수입니다.
  4. Autoexec.bat 파일에 설정된 모든 환경 변수 및 경로입니다.
  5. 로그온 스크립트에 설정된 모든 환경 변수 및 경로(있는 경우)입니다.
  6. 스크립트 또는 일괄 처리 파일에서 대화형으로 사용되는 변수입니다.

명령 셸에서 각 인스턴스는 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 변수를 한 번만 확인합니다.