批/这为什么不起作用?

时间:2015-09-08 14:30:11

标签: batch-file

我想用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

我希望你们能帮助我!

1 个答案:

答案 0 :(得分:0)

问题是由您为课程输入1引起的。具体来说,它是由行echo %classes%>pclass.gm

引起的

当您在字符选择中输入1时,它会将该命令扩展为echo 1>pclass.gm。不幸的是,1>用于将输出从STDOUT重定向到文件,因此批处理将此解释为将echo的输出发送到pclass.gm的命令。 echo本身显示回声是打开还是关闭。

你可以通过在回声线上添加括号来解决这个问题: (echo %classes%)>pclass.gm