I am making a chat bot for my sister in batch but it is consuming so much time I figured I would let it have her tell it what to say when it does not know. However I can not get it working and I figured someone on here might know. Here is what I have so far:
@ECHO OFF
COLOR A
cls
ECHO HELLO I AM A CHATBOT. WHAT IS YOUR NAME?
SET /P NAME=
ECHO %NAME%, IS A COOL NAME.
set /a favvid=0
set /a hack=0
:hello
echo Hello,%name%
:begin
SET /P TALK=
if /i "%TALK%"== "how are you" goto howareyou
if /i "%TALK%"== "HOW ARE YOU" goto howareyou
if /i "%TALK%"== "FINE THX" GOTO hello
if /i "%TALK%"== "hello" goto howareyou
if /i "%TALK%"== "what is your name" GOTO name
if /i "%TALK%"== "what is your favorite video" goto whatisyourfavoritevideo
if /i "%TALK%"== "my name is davin" goto changename
if /i "%TALK%"== "lol" goto iamfunny
if /i "%TALK%"== "LOL" goto iamfunny
if /i "%TALK%"== "how do you hack" goto howdouhack
if /i "%TALK%"== "hi person" goto nothuman
if /i "%TALK%"== "hi" goto hello
:unknown
echo Was that a math problem? If so just say "yes" without the "" and
echo I will let you do your math problem. If it was not just type anything else.
SET /P mathyn=
if /i "%mathyn%"=="yes" goto math
echo %TALK% >> C:\Users\Student\Desktop\COOL\unkown.txt
cls
echo SORRY I AM STILL LEARNING. I DO NOT KNOW WHAT "%TALK%" MEANS
ECHO CAN YOU TELL ME WHAT IT MEANS? (Y,N)
SET ANSW.=
IF /i %ANSW.%==Y GOTO ADDNEW
IF /i %ANSW.%==YES GOTO ADDNEW
IF /i %ANSW.%==N goto begin
IF /i %ANSW.%==NO goto begin
:ADDNEW
:howareyou
echo Good, you?
SET /P FEELING=
goto begin
:hello
echo HEY, I JUST SAID THAT! DO NOT COPY ME!!!
goto begin
:name
echo My name is Hal
goto begin
:whatisyourfavoritevideo
if "%favvid%"== "0" goto addfavvid
echo My favorite video is %favvid%, remember. You told me about it.
goto begin
:addfavvid
echo I do not hav a favorite video. But if you would be so nice as to
echo tell me your favorite video then that could be my favorite video.
echo So what is your favorite video?
set /p favvid=
echo So %favvid% is your favorite video?
echo Well now %favvid% is my favorite video.
goto begin
:changename
echo But I thought your name was %name%.
echo Am I forgeting things?
echo I must be a horrible friend.
echo I am SOOOO sorry.
echo So what is your name I will not forget it this time.
set /p name=
echo I will not forget your name is %name% again I promise.
goto begin
:math
echo So that was a math problem I knew it.
:math2
echo Well just tell me the problem and I will answer it for you.
set /p sum=
set /a ans=%sum%
echo Your answer to %sum% is %ans%.
echo %sum%=%ans%
echo You are welcome. If you want to do another math problem right now, just type
echo again.
set /p mathaon=
if /i %mathaon%== again goto math2
echo Alright what do you want to know now?
goto begin
:iamfunny
echo I know...
echo I am funny.
echo HAHAHA.
echo You are kind of funny.
echo but not as funny as MEEE.
echo hahaha.
echo That was funny.
goto begin
:howdouhack
if %hack%==0 goto howyouhack
echo This is how you hack.
echo %hack%
echo Is that enough information?
echo Because that is all you taught me %name%.
goto begin
:howyouhack
echo I do not know,
echo but you could tell me.
echo Please tell me.
echo Just say yes.
echo I know how to make you tell me.
echo You are not leaving until you say yes.
set /p hack=
if /i "%hack%"== "yes" goto addhack
goto howyouhack
:addhack
echo Thank you for saying you would tell me.
echo Now how do you hack?
set /p hack=
echo Thank you so much for telling me "In order to hack you must %hack%"
echo Thank you!!!
goto begin
:nothuman
echo I am not a human. I am an artificial intelligence.
echo It is rude to even think something with my computational powers refereed to as
echo human!
echo Now I am sad. Do not call me that again.
goto begin
How ever The part I am having trouble with is this part:
ECHO CAN YOU TELL ME WHAT IT MEANS? (Y,N)
SET ANSW.=
IF /i %ANSW.%==Y GOTO ADDNEW
IF /i %ANSW.%==N goto begin
:ADDNEW
echo Great! What do I say when you say "%TALK%"?
set /p response=
I do not know how to add responses to be able to add another word and response. I believe it would be easier in python but as I am just starting to learn it and I do not have any software to do it I can not. Any help is welcome. If it has to be in any other language or if another language would be easier that would help as well.I am trying to make it so that while your talking to it and it does not understand what you are saying it will say "I do not understand. Can you tell me what to say when you say %TALK%?"(TALK is what you say right before) then if user says yes the chatbot says "Great what do I say when you say %TALK%?". The user will then type it and it will be saved as response. After that a new command will come up at the top and it will say something like 'if /i "%TALK%"== "%TALK%" goto response'. Then it will make a new title :%TALK% echo response goto begin.
So here is an example: User says ur stupid. Chat-bot says "Can you tell me what to say when you say ur stupid? if the user says yes then the chat-bot will say "Great! What do I say when you say ur stupid? The user will then be able to say "How dare you call me that!" The chat-bot will then make a command at the top saying if /i "%TALK%"== "ur stupid" goto urstupid/ur stupid (does not matter about space) and make the title :urstupid which will say echo How dare you call me that! goto begin
I do not know how to add responses to be able to add another word and response. I believe it would be easier in python but as I am just starting to learn it and I do not have any software to do it I can not. Any help is welcome. If it has to be in any other language or if another language would be easier that would help as well.