错误:此时1意外

时间:2015-05-10 19:26:08

标签: batch-file

因此,我正在制作基于使用记事本++和批处理决策的游戏。我是新手,我不知道这里有什么问题。

: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

1 个答案:

答案 0 :(得分:1)

/p表示该变量只是由用户输入设置。 -

SET

: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

[编辑:正确治愈,但没有解释为什么出现错误信息]

由于未输入input7if语句将被解释为

if equ 1 goto redwine

cmd期待if something equ anotherthing dosomething,因此它会将1视为比较运算符。这不是它识别的运算符之一,因此它会回应1是意外的。

更好的形式是

if /i "%input7%" equ "1" goto redwine

其中/i强制不区分大小写的比较和"引用参数"保留用户输入 nothing 的语法要求或包含空格的字符串(您无法控制用户的响应。)