Windows 批处理文件菜单程序意外关闭

Windows 批处理文件菜单程序意外关闭,windows,batch-file,cmd,Windows,Batch File,Cmd,我两天前开始编写代码,想制作一个基于菜单的程序,在其中输入提示 不知怎的,在第14行之后,程序关闭了,我不知道为什么 如果有人能解释为什么我的代码不起作用,而不是发布全新的代码,那就太棒了 echo off :c color fa echo ==================================== echo = WELCOME!I AM LIZA! = echo = HOW ARE YOU TODAY? = echo =

我两天前开始编写代码,想制作一个基于菜单的程序,在其中输入提示

不知怎的,在第14行之后,程序关闭了,我不知道为什么

如果有人能解释为什么我的代码不起作用,而不是发布全新的代码,那就太棒了

echo off
:c
color fa
echo ====================================
echo =      WELCOME!I AM LIZA!          =
echo =      HOW ARE YOU TODAY?          =
echo =    1) Im great :D                =
echo =    2) Im okay :I                 =
echo =    3) Im sad :(                  =
echo =                                  =
echo ====================================
echo.
echo.
set /p ans="Enter your number to continue:"

if %ans%==1(
goto a1
)
if %ans%==2(
goto a2
)
if %ans%==3(
goto a3
)

:a1
cls
echo Liza: Nice to hear so! :D What did you do today?
echo.
set /p ans=">> "
cls
echo Liza: Sounds awesome! I was swimming in millions of bits today, it was so fun! xD
pause

:a2
cls
echo Liza: You dont seem like... What happened that makes you feel unconfy? ;(
echo.
set /p ans=">> "
cls
echo Liza: Im sorry for that, I hope talking to me makes it better tho ;)
pause

:a3
cls
echo Liza: Why so?! Tell me what or who makes you sad, im here for you to cheer you up!
echo.
set /p ans=">> "
cls
echo Liza: Oh my god, thats terrible im so sorry for you! I hope you feel better after talking to me, because im a software that is just nice :D
pause
```

您的具体问题是,在右括号之前没有包含空格字符

不正确:

if %ans%==1(
正确:

if %ans%==1 (
更正确的是:

if "%ans%" == "1" (
但是,您应该替换整个带标签的
:c
部分,以使用更合适的命令,如下所示:

Color FA
Echo ====================================
Echo =      WELCOME!I AM LIZA!          =
Echo =      HOW ARE YOU TODAY?          =
Echo =    1) Im great :D                =
Echo =    2) Im okay :I                 =
Echo =    3) Im sad :(                  =
Echo =                                  =
Echo ====================================
Echo(
Echo(
Choice /C 123 /N /M "Enter your number to continue:"
GoTo a%ErrorLevel%

我还建议,由于您似乎有意对所有不必要的内容发出惊叹声,您应该以
@Echo Off&SetLocal EnableExtensions DisableDelayedExpansion开始脚本,而不是
Echo Off
。当前启用了延迟扩展,不管是意外还是其他原因,您的感叹号,
可以被删除,或者更糟糕的是,像这样的东西:
Echo=WELCOME!我是莉莎=,将扩展为
=WELCOME=
。最安全的方法,尤其是当你需要在脚本中的任何地方使用延迟扩展时,当然是完全不要使用感叹号。非常感谢大家!这帮了我很大的忙,我是一个初学者,这对我来说是全新的。谢谢你帮了我的忙!:D