批处理程序无法正确更新文本文件

时间:2013-05-22 14:47:59

标签: batch-file

我有一个相当简单的问题,我似乎无法绕过头脑。目前我正在尝试批量编写游戏(我知道我应该使用其他更好的东西,但我不是)。我的问题是它没有及时更新,但似乎是一切都落后了。在目前这个时刻,只是等到HP没有被正确读取,直到发出另一个命令。

这是代码

`:damageAdjuster
cls
for /f "delims=" %%a in (test.txt) do (
    set line=%%a
    echo !line!
    set /a L=!L!+1
)

echo Testing Damage
echo.
echo 1) Deal Damage to HP
echo 2) Heal HP

set /a healthPoints=!line!
set /a hardHealth=17
set /a hostileDamage=%random%%%6 +1
set /a healthHeal=%healthPoints% +6
set /a healthDamage=%healthPoints%-%hostileDamage%

set input=
set /p input=Well...?:
if %input%==1 echo %healthDamage% >test.txt
if %input%==2 echo %healthHeal% >test.txt

if %healthPoints% gtr %hardHealth% (
echo %hardHealth% >test.txt
)

goto damageAdjuster`

指定L并启用延迟扩展。当然,我可能会以错误的方式解决这个问题,但这正是我提出的批量零经验。任何帮助,将不胜感激。此外,如果某些内容实际上有效,它还能用于记住库存等吗?

1 个答案:

答案 0 :(得分:0)

您的代码与您描述的完全一致。我认为你限制健康的问题是你在最后一个回声测试错误的变量 - 你需要测试你写的是什么,而不是当前的健康值。考虑修改您的代码,如下所示:

if %input%==1 echo %healthDamage% >test.txt
if %input%==2 (
  echo %healthHeal% >test.txt

  if %healthHeal% gtr %hardHealth% (
    echo %hardHealth% >test.txt
  )
)