如何继续按键或通过批量输入1来执行其他操作

时间:2015-07-21 20:49:13

标签: batch-file

我正在尝试制作一个简单的基于文本的游戏,并试图设计战斗机制。现在,一旦你进入战斗,你必须输入“1”来攻击或“2”进入战斗菜单。我想改变它,以便你可以按空间进行常规攻击,但仍然可以输入“1”来打开战斗菜单。如果您有兴趣,以下是目前的代码:

"item":{
    "alpha":0,
    "rules":[
        {
           "rule":"%scale-value == 1 || %scale-value == 4 || %scale-value == 8 || %scale-value == 16 || %scale-value == 20 || %scale-value == 32 || %scale-value == 40 || %scale-value == 64",
           "alpha":1
        }
     ]
},

2 个答案:

答案 0 :(得分:0)

将一对"双引号"中的值进行比较,如下所示(使用始终,因为值可能为空或可能包含空格字符,特别是用户输入的值 ):

if "%input12%" equ " " goto fighting
if "%input12%" equ "1" goto fightmenu

另一种方法:提前设置默认值(在代码中自我解释):

echo.
echo  1. Continue Attacking ^(default choice, hitting ^<Enter^> suffices^)
echo  2. Return to Fight Menu
echo.
set "input12=1"
set /p "input12=Your entry [default=%input12%]:"
if "%input12%" equ "1" goto fighting
rem superabundant: if "%input12%" equ "2" goto fightmenu
goto fightmenu

echo 1. ...命令

中注意正确的escaping <, >, ( and ) characters

答案 1 :(得分:0)

在这种类型的应用程序中,最好使用choice命令而不是set /P,因为CHOICE只需一键即可继续,无需按Enter键:

choice /C 12 /N /M "Enter: "
if %errorlevel% equ 2 goto fightmenu
if %errorlevel% equ 1 goto fighting

CHOICE命令的缺点是它无法读取空格键。但是,CHOICE优于SET / P的重要优点是在CHOICE命令中你从不会得到错误的输入,所以你可以用这种方式直接使用CHOICE答案:

choice /C 12 /N /M "Enter: "
goto option-%errorlevel%
. . .


:option-1  fighting
. . .


:option-2  fightmenu
. . .