Переход к следующему шагу в пакетной программе - PullRequest
0 голосов
/ 07 ноября 2018
    @echo off
    setlocal EnableDelayedExpansion
    color b
    goto play

    :play
    cls
    set name2= OoggieBoogie
    echo Hello, My name is !name2!^^! I'm an AI. I'm here to help with your lazy 
    Butt :D^^!
     timeout /t 3 >null

echo!name2!: May I Have Your Have Your Name Please? :)
color c
echo (Pssst^^! Want to cut the Bullshit and go straight in? Select "Express" please!)
timeout /t 2 >null
echo A. My name is 
echo B. Express
set /p input=
if !input! equ B goto Writing2


cls
echo!name2!: Hello !name!, Shall we continue now?
echo 1.Yes :D
echo 2.No  -_-" ..
set /p input=!name!:
if !input! equ 1 goto Writing
if !input! equ Yes goto Writing
if !input! equ 2 exit
if !input! equ No exit



:Writing2
echo Okay.. Whatever you want Damn.. I was trying to be nice ^^!
echo Anyway. Inatiating EXPRESS Route----->
goto Writing

Hello! Здесь я пытаюсь пропустить все шаги и сразу перейти к «Writting2», если набрал Express.

Я почти закончил эту забавную программу, но не могу придумать, как пропустить все шаги. Когда я набираю «Экспресс» или выбираю «B» это падает. но если я напишу имя, программа будет работать как обычно!

Заранее спасибо! Заранее извините, если я сделал что-то не так в сообществе.

1 Ответ

0 голосов
/ 07 ноября 2018

Это способ, которым вы можете делать то, что вы хотите:

@echo off
color b
goto play

:play
cls
set name2= OoggieBoogie
echo Hello, My name is %name2% I'm an AI. I'm here to help with your lazy 
::echo Butt :D^^!
timeout /t 3 >nul

echo %name2%: May I Have Your Have Your Name Please? :)
color c
echo (Pssst^^! Want to cut the Bullshit and go straight in? Select "Express" please!)
timeout /t 2 >nul
echo A. My name is 
echo B. Express
choice /c:AB>NUL
if errorlevel 2  goto Writing2
set /p "name=Enter your name: "

:Writing
cls
echo %name2%: Hello %name%, Shall we continue now?
echo 1.Yes :D
echo 2.No  -_-" ..
choice /c:1Y2N>NUL
if errorlevel 4  goto exit
if errorlevel 3  goto exit
if errorlevel 2  goto Writing
if errorlevel 1  goto Writing


:Writing2
echo Okay.. Whatever you want Damn.. I was trying to be nice ^^!
echo Anyway. Inatiating EXPRESS Route-----^>
goto Writing

:exit
exit /b

Помните: переменные могут быть доступны с помощью %variable_name%, и вы можете установить их с помощью set "variable_name=variable_value", как @Compo, упомянутый выше. Лучше использовать опцию choice /c в ваших будущих пакетных файлах. Недостатком этой опции является то, что вы не можете ввести строку с более чем 1 символом, но она выполняет свою собственную обработку ошибок, поэтому вам не нужно иметь дело с недействительными ответами. Кроме того, когда вы пишете

echo Anyway. Initiating EXPRESS Route----->
Символ

> вызывает проблемы, поскольку он является символом перенаправления и должен быть экранирован:

echo Anyway. Initiating EXPRESS Route-----^>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...