Batch file ';149在当时是不可能的';

Batch file ';149在当时是不可能的';,batch-file,Batch File,这是代码中奇怪的不起作用的部分: 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

这是代码中奇怪的不起作用的部分:

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行,其余的都可以。重新思考我的答案,因为我错过了这一点:“当然,我已经设置了这些变量。(否则我就已经找到解决方案了)。”

如果您将其更改为:

if %input%==1 (
  if %armorid% LSS 1 (
    echo "HERE"
    echo %money%

    if %money% GTR 149 (
      set /a money-=150
...

它是否在“此处”后打印
货币的值?

尽管有多种可能性,而且信息很少,但我敢打赌,如果您更改此行,您可能会解决此问题:

    if %money% GTR 149 (
。。。通过这个:

    if !money! GTR 149 (
。。。并在程序开头插入以下行:

setlocal EnableDelayedExpansion

有关更多详细信息,请查看“延迟扩展”主题…

1500行批处理程序?!是的,但当然不仅仅是这个。这是一个随机遭遇之类的批量RPG。但是这家商店不太管用。有人停了,哈哈,还没有人来帮忙。等等,你是说用百分号,还是只给变量本身钱?还有,如果你指的是没有百分号的变量,我已经定义了它;因此:“我已经定义了金钱”。