【发布时间】:2016-03-27 23:59:38
【问题描述】:
我正在批量制作一个选择你自己的冒险游戏,我想在其中包含统计数据以跟踪你在游戏中的表现。我想显示统计信息,但每次我有一个cls 命令时都必须这样做,因为我会经常使用那个命令,所以我做了一个名为:Stats 的块,所以我可以在每次需要时调用它.它工作正常,但统计显示后的叙述似乎不再起作用。我想保留:colorEcho 块,以便玩家可以区分对话、叙述和命令以输入选择。有关如何解决此问题的任何想法?
:Start
::Game goes here.
cls
Echo Please enter your player name.
set /p PlayerName="Player name: "
cls
call :Stats
call :colorEcho 7 "You lay on the cold, hard ground, sleeping away. It's been 1 month since the Virus spread..."
Echo.
call :colorEcho 7 "The sun rises over the horizon, warming up your dirt-caked body."
Echo .
pause
exit
:Stats
call :colorEcho A "Current Health = "
call :colorEcho C " %Health%"
Echo.
call :colorEcho A "Hunger = "
call :colorEcho C " %Food%"
Echo.
call :colorEcho A "Thirst = "
call :colorEcho C " %Water%"
Echo.
call :colorEcho A "Infection = "
call :colorEcho C " %Infection%"
Echo.
call :colorEcho A "Stamina = "
call :colorEcho C " %Stamina%"
Echo.
Echo.
pause
:colorEcho
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
旁注:我已经定义了所有变量。这是我确定的。
应该发生什么:
实际发生的情况:
【问题讨论】:
-
您在子程序结束时忘记了
exit /b或goto :eof,所以:Start属于:colorEcho。 -
这到底是做什么的?
标签: function batch-file call cls