batch - запросить ввод пользователя в зависимости от начального ввода пользователя - PullRequest
0 голосов
/ 01 апреля 2019

В пакете 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 Ответ

1 голос
/ 02 апреля 2019

Спасибо комментаторам, это очень помогло!Теперь он работает так:

@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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...