if-statement - 批处理文件在 if 语句处不断崩溃
问题描述
我正在制作一个简单的文字游戏。一切正常,直到它到达 if 语句。我不知道我做错了什么。
@echo off
title Text Adventures
echo "What is your name?"
set /p name=
echo "That was a bad crash. Are you hurt, %name%?"
echo.
echo Y/N
set /p answer=
if %answer% equ y goto hurt
:hurt
echo.
echo "I see. That's a gnarly gash you've got there!"
解决方案
在这里,我将其重写为使用函数的形式,并使用我提供给原始帖子的建议作为评论。
你知道我错误地假设你有使用标签的目的,但考虑到问题给出的方式,我认为你最好不要打扰它们。
这是一个无标签版本:
@(SETLOCAL
echo off
title Text Adventures
)
CALL :Main
( ENDLOCAL
ECHO. The Script Ended!
PAUSE
EXIT /B
)
:Main
set /p "name=What is Your Name?"
ECHO.
CHOICE /M "That was a bad crash. Are you hurt, %name%?"
If %ERRORLEVEL% equ 1 (
echo.
echo "I see. That's a gnarly gash you've got there!"
) ELSE (
echo.
echo "Oh Good!"
)
PAUSE
GOTO :EOF
这是标签版本。(我删除了解释它是如何工作的以及为什么代码在那里的注释,所以它对你来说不会那么混乱。)
@(SETLOCAL
echo off
title Text Adventures
)
CALL :Main
( ENDLOCAL
ECHO. The Script Ended!
PAUSE
EXIT /B
)
:Main
set /p "name=What is Your Name?"
ECHO.
CHOICE /M "That was a bad crash. Are you hurt, %name%?"
If %ERRORLEVEL% equ 1 (
CALL :Hurt
) ELSE (
CALL :NotHurt
)
PAUSE
GOTO :EOF
:Hurt
echo.
echo "I see. That's a gnarly gash you've got there!"
GOTO :EOF
:NotHurt
echo.
echo "Oh Good!"
GOTO :EOF
推荐阅读
- php - 在php中写一个密码作为秘密
- php - 从mysql读取数据并将变量传递给jquery函数,写入textarea,不起作用
- javascript - 垂直数组值水平存储到mysql表中的不同列
- pom.xml - 放心进口不解决
- json - 结构可编码。无法编码嵌套的 json
- time - 使用 NGIF 条件的 html 时间比较 - Angular
- haskell - 一次填充 2 行加速数组
- python - 将变量从一个 python 脚本导入到另一个 python 脚本时出错
- xmgrace - 有没有办法在 xmgrace 上找到两个不同数据集的卡方
- vba - VBA 代码错误,指出未设置对象变量