2017-05-08 1 views
0

새로운 일괄 스크립팅. 나는 window xp를 사용하고 있기 때문에 choice.exe를 사용하지 않고 시간에 맞춘 프롬프트를 작성하는 방법이 있는지 궁금합니다.batch.exe xptim prompt without choice.exe

@echo off 
/set p answer=input y or n in 30 seconds 
rem start timer 
if answer==y(
    goto :action1 
) 
if answer==n(
    goto action2 
) 
rem if timer has expired without input go to :action1 

:action 1 
echo you have entered y 
:action 2 
echo you have entered n 

힌트를 보내 주셔서 감사합니다.

답변

0

여기 하나의 아이디어가 있습니다. Wscript.ShellPopup() 메소드를 사용할 수 있습니다. 그것은 시간 초과 매개 변수를 포함합니다. 예/아니오 대화 상자는 예에서 6, 아니오에서 7, 제한 시간에 -1을 리턴합니다. 예/제한 시간에 true, 부울 숫자로 false을 부울로 변환하기 쉽습니다.이 파일을 .bat 확장자로 저장하면 작동 방식이 표시됩니다.

@if (@CodeSection == @Batch) @then 
@echo off & setlocal 

set delay=30 
set "msg=Do you wish to continue?" 

cscript /nologo /e:JScript "%~f0" "%msg%" %delay% && (
    goto yes 
) || (
    goto no 
) 

:yes 
echo You chose yes. 
exit /b 

:no 
echo You chose no. 
exit /b 

@end // end Batch/begin JScript hybrid code 

var osh = WSH.CreateObject('WScript.Shell'), 
    msg = WSH.Arguments(0), 
    secs = WSH.Arguments(1); 

var response = osh.Popup(msg, secs, 'Waiting for response', 4 + 32); 
// yes or timeout returns true; no returns false 
WSH.Quit(!(response - 7)); 
0

이 작업을 시도 할 수 있습니다 :

EditVar and Choose

는 Microsoft 선택 도구와 유사하다 선택,하지만 더 많은 기능을 가지고 있습니다. 다음은 선택하는 것이 더 바람직한 몇 가지 이유입니다.

  • 사용자가 잘못된 선택을하면 소리가 나지 않습니다.

  • 사용자가 Enter 키를 눌러 기본 선택 항목을 선택할 수있게 해주는 "기본 키"기능을 제공합니다.

  • 리얼 모드 DOS 버전 (MS-DOS 부팅 미디어에 유용함)이 함께 제공됩니다. 별도의 콘솔 창에서 여러 인스턴스를 실행할 때 Win32 버전의 시간 제한 기능이 혼동되지 않습니다. 이는 이전 버전의 Win32 콘솔 버전의 Microsoft Choice 도구에서 발생했습니다.

  • 64 비트 버전이 제공됩니다.

  • 사용자의 선택 표시를 억제 할 수 있습니다.

  • 사용자가> 선택을 한 후에 Enter 키를 눌러야하는 "줄 입력"모드를 제공합니다.

    CHOOOSE64.exe -c YNA -d A -n -p "Prompt" -t A,30 
    rem   -Choices 
    rem     -Default 
    rem      -No default prompt 
    rem       -Prompt(custom) 
    rem          -timeout defaultChoice, timeout in seconds 
    
    if %errorlevel%==1 echo Y 
    if %errorlevel%==2 echo N 
    if %errorlevel%==3 echo A or timeout-ed 
    
    :

은 일례이며