请在批处理脚本中提供一些帮助

时间:2014-05-30 10:18:42

标签: batch-file

我做了一个游戏菜单和" 2"工作很好,但当我点击" 5"它将+1添加到" menumark" 顺便说一下,我有Windows 7。 还有一些问题: 1)你能为特定的字母添加颜色吗? 2)为什么不:如果errorlevel 3设置/ menumark =%menumark%-1工作? 代码:

...
...
...
set menumark=1
set checkmark=1
set mark1=/
set mark2=.
set mark3=.
...
...
...
:MENU
cls
echo ----------
echo %mark1% (1) Play.
echo %mark2% (2) Settings.
echo %mark3% (3) Scores.
echo ----------
choice /c 25 /n
if errorlevel 1 set /a menumark=%menumark%+1
if errorlevel 2 set checkmark=2
if %menumark%==4 set menumark=1
if %menumark%==0 set menumark=1
if %menumark%==1 set mark1=/&set mark2=.&set mark3=.
if %menumark%==2 set mark2=/&set mark1=.&set mark3=.
if %menumark%==3 set mark3=/&set mark2=.&set mark1=.
if %checkmark%==2 if %menumark%==1 goto TOP
if %checkmark%==2 if %menumark%==2 goto SETTINGS
if %checkmark%==2 if %menumark%==3 goto HIGHSCORE
goto MENU
...
...
...

1 个答案:

答案 0 :(得分:2)

您的问题是errorlevel的控制权。代码if errorlevel n command将对大于或等于errorlevel的任何n值执行指示的命令。因此,要使用此类测试,必须从errorlevel的较大值到较低值进行测试并正确编码以避免出现问题

if errorlevel 3 echo 3
if errorlevel 2 echo 2
if errorlevel 1 echo 1

如果您的errorlevel为3,则前面的代码将回显这三个值,因为所有条件都被计算为true。

if errorlevel 3 (
    echo 3
) else if errorlevel 2 (
    echo 2 
) else if errorlevel 1 (
    echo 1
) else echo no error level


if %errorlevel%==3 echo 3
if %errorlevel%==2 echo 2
if %errorlevel%==1 echo 1

两个版本都可以避免“问题”(或者您可以使用goto来避免掉落选项)

对于颜色管理,here您可以找到所有必需的信息。