有一个批处理程序学习 [英] Having a batch program learn

查看:82
本文介绍了有一个批处理程序学习的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我妹妹批次聊天机器人,但它消耗了这么多时间,我想我会让它有她告诉它说什么时候不知道。不过,我不能让它工作,我想有人在这里可能知道。以下是我迄今为止:

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=

我不知道如何添加响应可以添加一个字和响应。我相信它会更容易在Python,但因为我刚开始学习它,我没有任何软件做到这一点我不能。任何帮助是值得欢迎的。如果它是在任何其他语言或其他语言会更容易,这将有助于为well.I我试图让它这样当你谈论它,它不明白你在说什么,它会说我愿意不明白。你能告诉我该说些什么时,你说%TALK%?(TALK是你的权利之前说的),那么如果用户说是在聊天机器人说:伟大的你时,你说%TALK%我说什么?。然后,用户将键入它,它会被保存为响应。之后,一个新的命令将拿出在顶部,它会这样说:如果/我TALK%%==TALK%%转到回应。然后,它会作出新标题:%TALK%回送应答转到开始

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.

因此​​,这里是一个例子:
  用户说,乌尔愚蠢。聊天博特说:你能告诉我,当你说乌尔愚蠢到说什么?如果用户说是那么聊天机器人会说太好了!我说什么,当你说乌尔傻?然后,用户就可以说:你怎么敢叫我!
然后,聊天机器人将在顶部做一个命令说,如果/我TALK%%==UR愚蠢转到urstupid / UR蠢(没有关系对空间),使标题:urstupid它会说回声如何敢叫我!转到开始

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

我不知道如何添加响应可以添加一个字和响应。我相信它会更容易在Python,但因为我刚开始学习它,我没有任何软件做到这一点我不能。任何帮助是值得欢迎的。如果它是在任何其他语言或其他语言会更容易,这将有助于为好。

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 like this matter! I modified your program so now it may learn new questions and answers. Try it:

@ECHO OFF 
setlocal

COLOR A
cls
:getName
ECHO HELLO I AM A CHATBOT.  WHAT IS YOUR NAME?
set "name="
SET /P NAME=
if not defined NAME goto getName
ECHO %NAME%, IS A COOL NAME. 
set favvid=0
set hack=0
:hello
:hi
echo Hello, %name%
:begin
set TALK=TypeSomething
SET /P TALK=
set TALK=%TALK:?=%
call :%TALK: =% 2>NUL
if %errorlevel% equ 0 goto begin

: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 "%mathyn%"=="yes" goto math
echo %TALK% >> C:\Users\Student\Desktop\COOL\unkown.txt
REM 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 /P ANSW.=
if /I "%ANSW.:~0,1%" neq "Y" goto begin

:ADDNEW
echo TELL ME WHAT "%TALK%" MEANS
set /P Desc=
echo :%TALK: =% >> "%~F0"
echo echo %Desc% >> "%~F0"
echo exit /B 0 >> "%~F0"
echo THANKS
goto begin

:TypeSomething
echo TYPE SOMETHING, PLEASE
exit /B 0

:howareyou
echo Good, you?
SET /P FEELING=
exit /B 0
:hello
:FINETHX
echo HEY, I JUST SAID THAT! DO NOT COPY ME!!!
exit /B 0
:whatIsYourName
echo My name is Hal
exit /B 0
:whatIsYourFavoriteVideo
if "%favvid%"== "0" goto addfavvid
echo My favorite video is %favvid%, remember. You told me about it.
exit /B 0
:addfavvid
echo I do not have 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.
exit /B 0
:changename
:myNameIsDavin
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.
exit /B 0
: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?
exit /B 0

:iamfunny
:LOL
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.
exit /B 0
:howDoYouHack
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%.
exit /B 0
: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 "%hack%" neq "yes" 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!!!
exit /B 0
:nothuman
:hiPerson
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.
exit /B 0

:bye
:exit
exit

输出例如:

HELLO I AM A CHATBOT.  WHAT IS YOUR NAME?
Antonio
Antonio, IS A COOL NAME.
Hello, Antonio
hello
HEY, I JUST SAID THAT! DO NOT COPY ME!!!
ur stupid
Was that a math problem? If so just say "yes" without the "" and
I will let you do your math problem. If it was not just type anything else.
no
SORRY I AM STILL LEARNING. I DO NOT KNOW WHAT "ur stupid" MEANS
CAN YOU TELL ME WHAT IT MEANS? (Y,N)
y
TELL ME WHAT "ur stupid" MEANS
How dare you call me that!
THANKS

TYPE SOMETHING, PLEASE
hi
Hello, Antonio
hello
HEY, I JUST SAID THAT! DO NOT COPY ME!!!
ur stupid
How dare you call me that!

这篇关于有一个批处理程序学习的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆