user7152599
user7152599

Reputation:

Not expected at this time error in batch

I created a batch script and it was complete enough that I could run it so I loaded it up and I get an error =1 was not expected at this time but I don't understand what I'm doing wrong, originally I had if armor=1 ( do...) but I got the same error both times, can someone tell me what I did wrong and why this happens?

:prebattle
cls
if armor == 1 (
set php=100
)
set /a mlvl=%random% %% 5 + 1 

if weapon=1 (
set pdmg=%random% %% 20 + 1
)
if !lvl! geq 1 if !lvl! leq 5 (
set enemyno=%random% %% 3 + 1
set mdmg=%random% %% 20 + 1
)
if !lvl! geq 6 if !lvl! leq 10 (
set enemyno=%random% %% 5 + 1
set mdmg=%random% %% 50 + 1
)
if !lvl! geq 11 if !lvl! leq 15 (
set enemyno=%random% %% 9 + 1
set mdmg=%random% %% 100 + 1
)
if !lvl! geq 21 if !lvl! leq 30 (
set enemyno=%random% %% 15 + 1
set mdmg=%random% %% 150 + 1
)
if !lvl! geq 31 if !lvl! leq 45 (
set enemyno=%random% %% 20 + 1
set mdmg=%random% %% 200 + 1
)
if !lvl! geq 46 if !lvl! leq 60 (
enemyno=%random% %% 30 + 1
set mdmg=%random% %% 500 + 1
)
if enemyno == 1 (
goto enemy1
)
if enemyno=2 (
goto enemy2
)
if enemyno=3 (
goto enemy3
)
if enemyno=4 (
goto enemy4
)
if enemyno=5 (
goto enemy5
)
if enemyno=6 (
goto enemy6
)
if enemyno=7 (
goto enemy7
)
if enemyno=8 (
goto enemy8
)
if enemyno=9 (
goto enemy9
)
if enemyno=10 (
goto enemy10
)
if enemyno=11 (
goto enemy11
)
if enemyno=12 (
goto enemy12
)
if enemyno=13 (
goto enemy13
)
if enemyno=14 (
goto enemy14
)
if enemyno=15 (
goto enemy15
)
if enemyno=16 (
goto enemy16
)
if enemyno=17 (
goto enemy17
)
if enemyno=18 (
goto enemy18
)
if enemyno=19 (
goto enemy19
)
if enemyno=20 (
goto enemy20
)
if enemyno=21 (
goto enemy21
)
if enemyno=22 (
goto enemy22
)
if enemyno=23 (
goto enemy23
)
if enemyno=24 (
goto enemy24
)
if enemyno=25 (
goto enemy25
)
if enemyno=26 (
goto enemy26
)
if enemyno=27 (
goto enemy27
)
if enemyno=28 (
goto enemy28
)
if enemyno=29 (
goto enemy29
)
if enemyno=30 (
goto enemy30
)
goto prebattle

Upvotes: 1

Views: 229

Answers (2)

greyli
greyli

Reputation: 58

These are the two biggest errors:

Using enemyno instead of %enemyno%. You only use the not percent version when setting variables.

Your if equation needs two == or EQU for it to work. Your fixed command should look like:

if %enemyno%==7 goto enemy7

I don't use the () because it is not always needed.

I also see that you are using

set enemyno=%random% %% 30 + 1

which needs /a to work, otherwise it will take it as a string. (/a makes it save as numbers.) It will look like:

set /a enemyno=%random% %%30 +1

Upvotes: 2

NCreature
NCreature

Reputation: 49

you are comparing in an if statement so you need two equal signs or use EQU.

if weapon == 1 (goto label)

if weapon EQU 1 (goto label)

Upvotes: 0

Related Questions