gpt4 book ai didi

batch-file - 如何批量减去变量

转载 作者:行者123 更新时间:2023-12-05 01:47:35 25 4
gpt4 key购买 nike

我正在批量制作一个基于文本的游戏,我需要从武器/盔甲的成本中减去玩家的金币......有人可以看看我的代码并告诉我他们是否发现其中有问题吗?

@echo off 
set gold= 20

echo %gold%
pause >nul
goto blacksmith
:blacksmith
set /p weaponch= Purchase:

if %weaponch%==1s (
set weaponch= 10
set a/ gold=%gold%-10
echo.
echo Gold: %gold% You have purchased the Light Sword
pause
)

最佳答案

您的代码中有两个问题。

第一个由 user328430 的答案修复,您使用 a/ 而不是 /a,而且 -= 更容易。

另一个问题是批处理会立即填充您的 if 中 %gold% 的所有实例,一旦到达它,它就不会识别更改,直到之后。我想这是为了优化,但它会导致问题。要修复它,您必须在程序中启用延迟扩展,然后在 if 中提醒它对 gold 变量使用延迟扩展。这是通过首先使用命令完成的:

setlocal enabledelayedexpansion

然后切换

echo Gold: %gold% You have purchased the Light Sword

echo Gold: !gold! You have purchased the Light Sword

将其与修正后的减法线相加,您将得到:

@echo off 
setlocal enabledelayedexpansion
set gold= 20

echo %gold%
pause >nul
goto blacksmith
:blacksmith
set /p weaponch= Purchase

if %weaponch%==1s (
set weaponch= 10
set /a gold-=10
echo.
echo Gold: !gold! You have purchased the Light Sword
pause
)

我在我的电脑上测试过,输入 1s 进行购买,它可以正常工作。希望对您有所帮助。

关于batch-file - 如何批量减去变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24112427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com