' 149目前未被预期'

时间:2014-11-21 02:41:39

标签: 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
  )
)

当然,我有那些变量集。 (否则我会找到解决方案。)

如果你想要我发布的完整代码,但它是1500行,其余的都可以。

2 个答案:

答案 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

有关详细信息,请查看"延迟扩展"主题...