2010-11-26 3 views
1

cmd 콘솔에서 일부 결과를 보여주는 DOS 배치 파일이 있습니다. 사용자가 Enter 키를 눌러 프로그램을 실행하거나 키보드의 다른 키를 눌러 종료합니다.Dos 배치 파일에서 Enter 키를 눌러 프로그램을 열거 나 다른 키를 눌러 종료하십시오.

옵션/선택 사항을 사용하고 싶지는 않습니다. 사용자가 적어도 조치를 확인하고 설정해야하는 항목을 입력해야하기 때문입니다.

예 : cmd 콘솔의 끝 부분에서 다음과 같이 말하십시오. Enter를 눌러 abc.exe를 열거 나 키보드의 아무 키나 눌러 종료하십시오!

감사합니다.

답변

3

@ECHO OFF 
SET Choice= 
SET /P Choice=Press enter to open abc.exe (and something else to quit) 
IF "%Choice%"=="" GOTO Start 
GOTO End 
:Start 
echo abc.exe about to start 
abc.exe 
:End 

EDIT 같은 뭔가 : 입력 누르지 않고 그냥 "어떤 키를"원하는 경우 다음이가 DOS 스크립트 언어로 불가능하지만 당신은 당신을 위해 그렇게 할 것입니다 조금 EXE 유틸리티를 쓸 수 . 여기

는 모습입니다 :

C:\Users\hol>test2 
Press enter to open abc.exe (and something else to quit) 
abc.exe about to start 
'abc.exe' is not recognized as an internal or external command, 
operable program or batch file. 
C:\Users\hol> 

내가 abc.exe하지 않은 때문에 오류 메시지가 :

C:\Users\hol>test 
Press enter to open abc.exe (and something else to quit) 

당신이 우리가 얻을 "입력"키를 누르면.

C:\Users\hol>test2 
Press enter to open abc.exe (and something else to quit)x 

주변에 다른 방법은

C:\Users\hol>test2 
Press enter to open abc.exe (and something else to quit)x 

C:\Users\hol> 

을 제공합니다 기본적으로/p는이 빈 문자열 그냥 다음 입력 할 때 "선택"의 값을 지정하도록 사용자에게 설정하고 우리는 그렇지 시작할 수 있습니다 우리 끝. 원하는대로 바꿔주세요.

+0

솔루션을 제공해 주셔서 감사합니다.하지만이 방법으로 사용자는 "필수 사항이 아닌"입력을 마치고 "Enter 키를 눌러야"합니다. 사용자가 아무 키나 누르면 즉시 종료됩니다. 종료해야합니다. 해결책이 있는지 알려주시겠습니까? – user521875

+0

이 코드를 사용해 보셨습니까? 그것을 시험해보십시오. 사용자가 그냥 엔터를 누르면 프로그램은 abc.exe로 시작합니다. 사용자가 프로그램을 종료하면 프로그램이 종료됩니다. – hol

+0

테스트 결과를 추가했습니다. – hol

1

이 배치 파일은 아래에 정확히 할 것입니다 당신이 원하는 :

@rem ======================================== 
    @rem GETKEY.BAT - Written by Paul Tomasi 2010 
    @rem 
    @rem Waits for keypress. Returns key value 
    @rem ======================================== 
    @echo off 
     set /p .=Press ENTER to open abc.exe (and something else to quit): <nul 
     call :getkey 
     if %errorlevel% equ 13 start /b /wait abc.exe 
    exit /b 


    ::--------------------------- 
    :: GETKEY 
    ::--------------------------- 
    :getkey 
     (
     echo a 
     echo mov ah, 08 
     echo int 21 
     echo mov ah, 4c 
     echo int 21 
     echo. 
     echo rcx 
     echo 08 
     echo n getkey.com 
     echo w 
     echo q 
    )>script 
     debug<script>nul 
     call getkey.com 
    goto :eof 

DOS 버전은 다음 라인으로 떨어지는 커서를 억제하기 위해 단순히 사용되는 'SET/P'옵션을 (지원하지 않는 경우) 그런 다음이 행을 ECHO 문으로 대체하십시오.

배치 파일을 곧바로 삭제하려는 경우 '/ wait'를 생략 할 수 있습니다.

관련 문제