我想用batbox做一个小游戏。我希望它显示你使用的类,但它没有用。它显示了" Class:ECHO已关闭。"我不知道什么是错的。继承人使用的代码:
:charectarselect
cd gamedata
color 0f
cls
batbox /g 0 0
echo Select class:
echo.
echo %mage%
echo %worrior%
set /p classes=Class:
echo %classes%>pclass.gm
goto login
:login
color 0f
cd gamedata
set /p pclass=<pclass.gm
set /p user=<username.gm
set /p pass=<password.gm
if "%pclass%" == "1" echo Mage>pclass.gm
cls
title Login
echo ======================LOGIN======================
set /p login=Username :
if %login% == %user% goto password
goto login
:password
cls
echo ======================LOGIN======================
set /p passw=Password :
if %passw% == %pass% goto game
goto password
:game
cls
batbox /c 0xc9 /d "Health: %health%"
batbox /g 11 0 /c 0x9c /d "Strength: %strength%"
batbox /g 23 0 /c 0x9a /d "Class: %pclass%"
pause >nul
我希望你们能帮助我!
答案 0 :(得分:0)
问题是由您为课程输入1
引起的。具体来说,它是由行echo %classes%>pclass.gm
当您在字符选择中输入1时,它会将该命令扩展为echo 1>pclass.gm
。不幸的是,1>
用于将输出从STDOUT重定向到文件,因此批处理将此解释为将echo
的输出发送到pclass.gm的命令。 echo
本身显示回声是打开还是关闭。
你可以通过在回声线上添加括号来解决这个问题:
(echo %classes%)>pclass.gm