맨위로가기

Choice (명령어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

`Choice` 명령어는 사용자가 선택할 수 있는 옵션을 제공하는 명령줄 인터페이스(CLI) 셸 명령어이다. MS-DOS 6.0에서 처음 도입되었으며, Novell DOS, IBM PC DOS, Windows Server 2003 및 기타 운영 체제에서도 사용할 수 있다. 이 명령어는 사용자가 선택한 사항을 종료 코드로 반환하며, 문법은 DOS와 Microsoft Windows, ReactOS에서 약간의 차이를 보인다.

더 읽어볼만한 페이지

  • 외부 도스 명령어 - COMMAND.COM
    COMMAND.COM은 MS-DOS 운영체제에서 명령줄 인터페이스를 제공하는 명령어 해석기로, 파일 관리 및 프로그램 실행 등의 작업을 수행하며, 윈도우 9x에서 MS-DOS 호환성을 위해, FreeDOS에서는 핵심 구성 요소로 사용된다.
  • 외부 도스 명령어 - CHKDSK
    CHKDSK는 디스크의 파일 시스템 무결성을 검사하고 오류를 수정하는 시스템 도구로, 다양한 운영체제에서 구현되었으며 파일 시스템 오류 수정 및 손상된 파일 조각 복구 기능을 제공하지만 데이터 손상이나 시스템 불안정을 야기할 수 있다는 비판도 있다.
  • 윈도우 관리 - 블루스크린
    블루스크린은 윈도우 운영체제에서 발생하는 치명적인 오류로, 컴퓨터 작동을 멈추고 파란색 화면에 오류 메시지를 표시하며, 하드웨어 또는 소프트웨어 문제로 인해 발생하고, 시스템 복원, 안전 모드 부팅 등의 방법으로 대처한다.
  • 윈도우 관리 - 파워셸
    파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다.
Choice (명령어) - [IT 관련 정보]에 관한 문서
기본 정보
ReactOS 0.4.13 choice 명령어
ReactOS choice 명령어
개발자마이크로소프트
노벨
Datalight
짐 홀
ReactOS 기여자들
출시일1993년
운영체제DOS
윈도우
ReactOS
플랫폼크로스 플랫폼
장르명령
라이선스MS-DOS, PC DOS, DR-DOS, 윈도우, PTS-DOS: 사유 상용 소프트웨어
웹사이트choice 명령어 문서 (Microsoft)

2. 역사

`choice` 명령어는 MS-DOS 6.0에서 CHOICE.COM 또는 CHOICE.EXE 파일 이름을 가진 외부 명령어로 처음 도입되었다.[2] Novell DOS 7과 IBM PC DOS 7.0에 포함되었으며, 일부 마이크로소프트 Windows 버전의 명령줄 셸에서도 사용할 수 있었다. 하지만 Windows 2000 및 Windows XP에서는 사용할 수 없었고, Windows XP Resource Kit에서 Windows용으로 처음 제공되었다.[3][4]

Windows Server 2003에서 다시 도입된 이후 계속 사용되고 있다.[5] Windows 2000부터는 `SET` 명령어에 `/P` 명령줄 인자를 사용하여 유사한 기능을 제공하지만, `choice` 명령어와 달리 Enter 키를 추가로 눌러야 한다.

`choice` 명령어는 OS/2, Rexx, Perl로 이식되었다.[6] Datalight ROM-DOS,[7] FreeDOS,[8] PTS-DOS,[9] ReactOS에서도 사용할 수 있으며,[10] FreeDOS 버전은 짐 홀이 개발하고 GPL v2 라이선스로 배포한다.[11]

2. 1. MS-DOS

이 명령어는 MS-DOS 6.0에서 CHOICE.COM 또는 CHOICE.EXE 파일 이름의 외부 명령어로 처음 도입되었다.[2] Novell DOS 7과 IBM PC DOS 7.0에 포함되었으며, 일부 마이크로소프트 Windows 버전의 명령줄 셸에서도 사용할 수 있었다. 그러나 Windows 2000 및 Windows XP에서는 사용할 수 없었다.[3] 이후 Windows XP Resource Kit에서 Windows용으로 처음 제공되었다.[4]

이 명령어는 Windows Server 2003에서 다시 도입되었으며 이후 버전에도 존재한다.[5]

2. 2. Novell DOS 및 IBM PC DOS

이 명령어는 Novell DOS 7 및 IBM PC DOS 7.0에 포함되어 있다.[3]

2. 3. Windows

이 명령어는 MS-DOS 6.0에서 외부 명령어(파일 이름 CHOICE.COM 또는 CHOICE.EXE)로 처음 도입되었다.[2] Novell DOS 7 및 IBM PC DOS 7.0에 포함되었으며, 일부 마이크로소프트 Windows 명령줄 셸에서도 사용할 수 있었다. 하지만 Windows 2000 및 Windows XP에서는 사용할 수 없었다.[3] 이후 Windows XP Resource Kit에서 Windows용으로 처음 제공되었다.[4]

Windows Server 2003부터 다시 도입되었으며 이후 버전에도 존재한다.[5] Windows 2000부터는 `SET` 명령어에 `/P` 명령줄 인자를 사용하여 유사한 기능을 제공하지만, `choice` 명령어와 달리 Enter 키를 추가로 눌러야 하는 번거로움이 있다.

2. 4. 기타 운영체제

choice 명령어는 OS/2, Rexx, Perl로 이식되었다.[6] 또한 Datalight ROM-DOS,[7] FreeDOS,[8] PTS-DOS,[9]ReactOS에서도 사용할 수 있다.[10] FreeDOS 버전은 짐 홀이 개발했으며 GPL v2 라이선스로 배포된다.[11]

3. 사용법

이 명령어는 사용자가 선택한 사항을 종료 코드로 반환하며, 이 코드는 사용자가 선택 목록에서 선택한 키의 인덱스로 설정된다. 목록의 첫 번째 항목은 값 1, 두 번째 항목은 값 2를 반환하는 식이다.

유효하지 않은 키를 누르면 경고음이 울린다. 오류가 감지되면 종료 코드 255가 반환된다. 사용자가 + 또는 +를 누르면 종료 코드 0이 반환된다.[12]

매개변수 없이 사용하면 기본 선택 사항인 Y와 N이 표시된다.[12]

3. 1. 종료 코드

이 명령어는 사용자가 선택한 사항을 종료 코드로 반환하며, 이 코드는 사용자가 선택 목록에서 선택한 키의 인덱스로 설정된다. 목록의 첫 번째 선택 항목은 값 1을 반환하고, 두 번째 항목은 값 2를 반환하는 식이다.

유효하지 않은 선택 키가 눌러지면 경고음이 울린다. 오류 조건이 감지되면 종료 코드 값 255가 반환된다. 사용자가 + 또는 +를 누르면 종료 코드 값 0이 반환된다.[12]

Choice는 매개변수 없이 사용될 경우 기본 선택 사항인 Y와 N을 표시한다.[12]

3. 2. 경고음

사용자가 유효하지 않은 선택 키를 누르면 경고음이 울린다.[12]

3. 3. 기본 선택 사항

매개변수 없이 `Choice` 명령어를 사용하면 Y와 N의 기본 선택 사항이 표시된다.[12]

4. 문법

`CHOICE` 명령어는 사용자가 선택지 중 하나를 고를 수 있게 해주는 명령어이다. DOS와 Microsoft Windows, ReactOS에서 `CHOICE` 명령어의 문법은 다음과 같다.

=== DOS ===

`CHOICE [/C[:]선택지] [/N] [/S] [/T[:]c,nn] ["텍스트"]`

인수설명
` /C[:]선택지`허용 가능한 키를 지정한다. 기본값은 "YN"이다.
` /T[:]c,nn`"nn"초 후에 기본 선택을 "c"로 지정한다.
`텍스트`표시할 프롬프트 문자열을 지정한다. (따옴표는 선택 사항이다).
플래그설명
`/N`프롬프트 문자열 끝에 선택 사항과 "?"를 표시하지 않도록 지정한다.
`/S`선택 키를 대소문자를 구분하여 처리하도록 지정한다.



=== Microsoft Windows, ReactOS ===

CHOICE [/C [<선택1><선택2><…>]] [/N] [/CS] [/T <시간제한> /D <선택>] [/M <"텍스트">]


  • '''/C[:]선택''' : 허용되는 키를 지정한다. 기본값은 "YN"이다. (Microsoft Windows는 유효한 선택 키를 a-z, A-Z, 0-9 및 128~254 사이의 ASCII 값으로 제한한다.)
  • '''/T[:]nn''' : "nn"초 후에 기본 선택을 /D로 지정한다. /D와 함께 지정해야 한다.
  • '''/D[:]c''' : 기본 선택을 'c'로 지정한다.
  • '''/M 텍스트''' : 표시할 프롬프트 문자열을 지정한다.


플래그:

  • '''/N''' : 프롬프트 문자열 끝에 선택 항목과 "?"를 표시하지 않도록 지정한다.
  • '''/CS''' : 선택 키를 대소문자를 구분하는 것으로 처리하도록 지정한다.

4. 1. DOS

`CHOICE [/C[:]선택지] [/N] [/S] [/T[:]c,nn] ["텍스트"]`

인수와 플래그는 다음과 같다.

인수설명
` /C[:]선택지`허용 가능한 키를 지정한다. 기본값은 "YN"이다.
` /T[:]c,nn`"nn"초 후에 기본 선택을 "c"로 지정한다.
`텍스트`표시할 프롬프트 문자열을 지정한다. (따옴표는 선택 사항이다).
플래그설명
`/N`프롬프트 문자열 끝에 선택 사항과 "?"를 표시하지 않도록 지정한다.
`/S`선택 키를 대소문자를 구분하여 처리하도록 지정한다.


4. 2. Microsoft Windows, ReactOS

CHOICE [/C [<선택1><선택2><…>]] [/N] [/CS] [/T <시간제한> /D <선택>] [/M <"텍스트">]

  • '''/C[:]선택''' : 허용되는 키를 지정한다. 기본값은 "YN"이다. (Microsoft Windows는 유효한 선택 키를 a-z, A-Z, 0-9 및 128~254 사이의 ASCII 값으로 제한한다.)
  • '''/T[:]nn''' : "nn"초 후에 기본 선택을 /D로 지정한다. /D와 함께 지정해야 한다.
  • '''/D[:]c''' : 기본 선택을 'c'로 지정한다.
  • '''/M 텍스트''' : 표시할 프롬프트 문자열을 지정한다.


플래그:

  • '''/N''' : 프롬프트 문자열 끝에 선택 항목과 "?"를 표시하지 않도록 지정한다.
  • '''/CS''' : 선택 키를 대소문자를 구분하는 것으로 처리하도록 지정한다.

5. 예제

다음은 사용자에게 세 가지 선택 사항을 제공하는 배치 파일 예제이다.[13]

```dosbatch

@ECHO off

@CHOICE /C:123

IF ERRORLEVEL 3 GOTO three

IF ERRORLEVEL 2 GOTO two

IF ERRORLEVEL 1 GOTO one

GOTO end

:one

ECHO You have pressed "1"!

GOTO end

:two

ECHO You have pressed "2"!

GOTO end

:three

ECHO You have pressed "3"!

:end

@PAUSE

```

`IF ERRORLEVEL` 명령은 "크거나 같음"을 테스트하여 종료 코드를 평가하고, 사용자의 입력에 따라 안내를 한다. 선택한 항목은 `ECHO` 명령을 사용하여 화면에 출력된다.

''이 예제는 DOS 구문을 사용한다. `CHOICE` 명령의 Windows 버전에 직접 적용하려면 약간의 조정이 필요하다.''

''IF 명령은 ERRORLEVEL을 확인할 때 숫자와 비교하여 ERRORLEVEL이 해당 숫자와 같거나 높으면 일치한다. 따라서 IF ERRORLEVEL 비교는 감소하는 순서로 수행해야 한다.''

''사용자가 Control-C를 눌러 CHOICE를 중단하고 N을 누르면 프로그램이 계속 실행된다. 첫 번째 "Goto end"가 필요하다.''

5. 1. DOS 배치 파일 예제

다음 배치 파일은 사용자에게 세 가지 선택 사항을 제공한다.[13] 사용자는 `IF ERRORLEVEL` 명령("크거나 같음"을 테스트)을 사용하여 종료 코드를 평가하여 사용자의 입력에 따라 안내를 받는다. 선택한 항목은 ECHO 명령을 사용하여 화면에 출력된다.

```dosbatch

@ECHO off

@CHOICE /C:123

IF ERRORLEVEL 3 GOTO three

IF ERRORLEVEL 2 GOTO two

IF ERRORLEVEL 1 GOTO one

GOTO end

:one

ECHO You have pressed "1"!

GOTO end

:two

ECHO You have pressed "2"!

GOTO end

:three

ECHO You have pressed "3"!

:end

@PAUSE

```

''이 예제는 DOS 구문을 사용한다. 이 예제가 `CHOICE` 명령의 Windows 버전에 직접 적용되려면 약간의 조정이 필요하다.''

''IF 명령은 ERRORLEVEL을 확인할 때 숫자와 비교하여 ERRORLEVEL이 해당 숫자와 같거나 높은 경우 일치한다. 이 때문에 IF ERRORLEVEL 비교는 감소하는 순서로 수행해야 한다.''

''사용자가 Control-C를 눌러 CHOICE를 이스케이프한 후 N을 누르면 프로그램이 계속 실행된다. 첫 번째 "Goto end"가 필요하다.''

참조

[1] 서적 DOS: The Complete Reference https://books.google[...] Osborne McGraw-Hill
[2] 웹사이트 MS-DOS and Windows command line choice command https://www.computer[...]
[3] 웹사이트 Microsoft Windows XP Command-line reference A-Z http://www.microsoft[...]
[4] 웹사이트 Choice - Accept user input - Windows CMD - SS64.com https://ss64.com/nt/[...]
[5] 웹사이트 Make the Choice command work for you even in Windows 7 https://www.techrepu[...] 2023-10-13
[6] 웹사이트 Batch files - The CHOICE command https://www.robvande[...]
[7] 웹사이트 Datalight ROM-DOS User's Guide https://www.dataligh[...]
[8] 웹사이트 ibiblio.org FreeDOS Group -- FreeDOS Base http://www.ibiblio.o[...]
[9] 웹사이트 PTS-DOS 2000 Pro User Manual http://download.para[...] Paragon Technology GmbH 2018-05-12
[10] 웹사이트 reactos/reactos https://github.com/r[...] 2022-10-27
[11] 웹사이트 ibiblio.org FreeDOS Package -- choice (FreeDOS Base) http://www.ibiblio.o[...]
[12] 웹사이트 Microsoft TechNet Choice article https://technet.micr[...] 2016-08-31
[13] 웹사이트 Batch File Help and Support https://www.computer[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com