Это способ, которым вы можете делать то, что вы хотите:
@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-----^>