Windows 批处理文件菜单程序意外关闭
我两天前开始编写代码,想制作一个基于菜单的程序,在其中输入提示 不知怎的,在第14行之后,程序关闭了,我不知道为什么 如果有人能解释为什么我的代码不起作用,而不是发布全新的代码,那就太棒了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 =
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