因此,我正在制作基于使用记事本++和批处理决策的游戏。我是新手,我不知道这里有什么问题。
:start
;startup
cls
echo Wine or Cheese?
echo.
echo 1. Wine
echo 2. Cheese
echo 3. Exit
echo.
set /p input0=Enter:
if %input0% equ 1 goto winestart
if %input0% equ 2 goto cheese
if %input0% equ 3 goto exit
当我选择winestart或1时,它会转到winestart,然后崩溃然后崩溃,并显示错误消息:1此时意外。 Winestart看起来像这样:
:winestart
cls
echo You are alone. You have a bottle of wine and the clothes you are wearing.
echo What kind of wine do you have?
echo.
echo 1. Red Wine
echo 2. White Wine
set p/ input7=Enter:
if %input7% equ 1 goto redwine
if %input7% equ 2 goto whitewine
答案 0 :(得分:1)
/p
表示该变量只是由用户输入设置。 -
:winestart
cls
echo You are alone. You have a bottle of wine and the clothes you are wearing.
echo What kind of wine do you have?
echo.
echo 1. Red Wine
echo 2. White Wine
set /p input7=Enter:
if %input7% equ 1 goto redwine
if %input7% equ 2 goto whitewine
[编辑:正确治愈,但没有解释为什么出现错误信息]
由于未输入input7
,if
语句将被解释为
if equ 1 goto redwine
cmd
期待if something equ anotherthing dosomething
,因此它会将1
视为比较运算符。这不是它识别的运算符之一,因此它会回应1
是意外的。
更好的形式是
if /i "%input7%" equ "1" goto redwine
其中/i
强制不区分大小写的比较和"引用参数"保留用户输入 nothing 的语法要求或包含空格的字符串(您无法控制用户的响应。)