윈 도 우 CHOICE 명령문의
2021.04.06 13:07
4DOS는 모르고요.
도스 Choice나 제가 알지 못하는 다른 명령
또는 이런 기능을 지원하는 도스 유틸을 써서
메시지는 '종료하시겠습니까?' < === 윈도메시지 창이 아닌 CMD창에서....
대기시간은 5초
5초간 아무 입력 없으면 goto:EXIT
엔터를 비롯 아무 키보드나 누르면 goto:Pause
이렇게 정의 하려면 어떻게 해야하나요?
댓글 [10]
-
꼬져 2021.04.06 20:11 -
윈도면도 2021.04.06 20:46
너무 고맙습니다 ㅎ
잘 작동되는데요. 그런데 한가지... 현재 상태는
Pause = Y
End = N 또는 5초간 아무 입력이 없을때..
인데요.
Pause = 엔터, 스페이스바 등.. 키보드 아무 키나 눌렀을때
End = 아무런 키도 누르지 않고 5초가 지났을때
이렇게 적용하려면 어떻게 해야할지...
애초 제 문의도 이 문의였고요. -
꼬져 2021.04.06 20:58 -
윈도면도 2021.04.06 22:01
실행하면 마찬가지로 이렇게 뜨네요.
첫번째 배치파일처럼 반드시 Y를 눌러줘야만 pause로 이동하네요. Y외의 키를 누르면 아무런 동작을 안합니다.
Y에 국한하지 않고 어떤 키를 누르던 Y를 누른거처럼 작동되게 만들고 싶은데
Choice 명령으론 안되나봐요.
-
집앞의_큰나무 2021.04.06 23:20
-
윈도면도 2021.04.07 00:07
살짝 비슷하게 연출되려다 말았네요 ㅎ
FOR 구문 이런건 제가 전혀 이해를 못하고 있어서 손을 살짝 볼래도 감이 안잡히넹
에고 그냥 포기해야겠습니다 ㅋ
-
BecauseI 2021.04.07 02:39 5초 대기 및 영문 X 만 goto:EXIT 로 동작하게끔 한다면
choice 한줄
%errorlevel% if문 두 줄이면 가능하긴 합니다만
스페이스 및 엔터는 동작 안합니다.
-
윈도면도 2021.04.07 10:43
네.. 영감을 얻어 아쉬운대로 해결이 됐습니다. 답변 감사드려요
-
suk 2021.04.07 04:10
choice에서 엔터 / 스페이스 바 / 특수 문자는 입력이 안 됩니다
안 되는 키 제외하고, 최대한 많이, Y 대문자를 제외한, 알파벳 대/소문자와 숫자 키 입력하면 Pause가 되고 (y 소문자 포함)
Y 대문자 또는 5초 지나면 자동으로 Y 대문자가 선택되어서 Exit (창 닫힘) 됩니다.
CHOICE /C "Y1234567890ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxyz" /CS /N /T 5 /D Y /M "종료하시겠습니까?"
if %errorlevel%==1 (goto:EXIT) else (goto:Pause)
:EXIT
exit
:Pause
Pause
여담으로 위 bat 파일은 어제 만들었는데, 엔터 키 / 스페이스 바 / 특수 문자를 해결해보려고 했는데 힘들더군요
그 후 VHDman.exe 테스트하고... 다음 날 다시 오니까 댓글들이 많이 달렸네요
-
윈도면도 2021.04.07 10:43
답변 감사드립니다.
짚앞님이 올려주신 배치는 For 구문인데 손을 좀 보면 뭔가 될 거 같기도 한데 이건 아예 제가 이해를 못하는 파트라 응용이나 수정이 불가한 상태고
맨처음 댓글 주신 꼬져님 배치파일을 참고해서 어제 이런저런 시도 해보다가 간신히 원하는 바와 비슷한 결과물을 만들긴 했는데 SUK님이 지금 올려주신 배치를 보니 제가 정답에 접근한 거 같아 뿌듯하네요. ㅎ
그리고 if %errorlevel을 저렇게 한줄로 깔끔하게 줄일 수도 있군요? 항상 2~3줄로 나열해 번잡하게 사용했었는데.
choice만 활용해서는 엔터, 특수키까지 적용되겐 하는 건 불가능이더군요. 아예 이 명령자체가 그런 키를 허용을 하지 않기에..
도움 많이됐네요. 고맙습니다.
글 작성이 안되네요
새 CMD 스크립트.cmd