这是代码中奇怪不起作用的部分:
if %input%==1 (
if %armorid% LSS 1 (
if %money% GTR 149 (
set /a money-=150
set armorid=1
set armor=Leather Armor
goto shop2
) else (
goto notenoughmoney
)
) else (
goto betteritem
)
)
当然,我有那些变量集。 (否则我会找到解决方案。)
如果你想要我发布的完整代码,但它是1500行,其余的都可以。
答案 0 :(得分:1)
重新思考我的答案,因为我错过了这一点:“当然,我有那些变量集。(否则我会找到解决方案。)”。
如果将其更改为:
,您会得到什么?if %input%==1 (
if %armorid% LSS 1 (
echo "HERE"
echo %money%
if %money% GTR 149 (
set /a money-=150
...
在“HERE”之后是否会为money
打印一个值?
答案 1 :(得分:1)
虽然有多种可能性和非常少的信息,但我敢打赌,如果你改变这一行,你可以解决这个问题:
if %money% GTR 149 (
......通过这个:
if !money! GTR 149 (
...并在程序开头插入此行:
setlocal EnableDelayedExpansion
有关详细信息,请查看"延迟扩展"主题...