批处理-根据初始用户输入请求用户输入

时间:2019-04-01 14:21:16

标签: windows batch-file

在Windows批处理中,我询问用户是要使用该程序的内部默认值还是要设置自己的参数,但是无论用户设置了什么答案,该程序始终会直接跳转到主例程使用内部默认值。这是我的代码:

@echo off
setlocal EnableDelayedExpansion

choice /C:yn /M "Use internal defaults? "
if errorlevel==1 goto yes
if errorlevel==2 goto no

rem use default
:yes 
set "MYNUMBER=5"
goto run

rem let user define another number
:no
set /P MYNUMBER="Please set a number: "
goto run

rem main routine
:run
echo %MYNUMBER%
pause

我想念什么?

由于我们正在这样做:我如何才能迫使程序在键入用户的选择后等待用户按下“ Enter”键?现在,它会在输入“ y”或“ n”后立即开始。

1 个答案:

答案 0 :(得分:1)

感谢评论员,这对您有很大帮助!现在其工作方式如下:

@echo off
setlocal EnableDelayedExpansion

:ask
set /P USER_CHOICE="Use internal defaults? (Y/N) "

if /i "%USER_CHOICE%"=="y" (
    goto yes
    ) else (
    if /i "%USER_CHOICE%"=="n" (
        goto no
        ) else (
        echo "Wrong input! Please choose Y or N!"
        goto ask
    )
)

rem use default
:yes 
set "MYNUMBER=5"
goto run

rem let user define another number
:no
set /P MYNUMBER="Please set a number: "
goto run

rem main routine
:run
echo %MYNUMBER%
pause