Search code examples
batch-filecommand

Set was unexpected at this time? (batch)


At first, it said "set was unexpected at this time" and now when I run it, it just closes. This is in batch. Have any ideas? Here's the code:

:waves

if %wave1%==1 set /a wave1=ACTIVATED

if %wave1%==0 set /a wave1=DEACTIVATED

if %wave2%==1 set /a wave2=ACTIVATED

if %wave2%==0 set /a wave2=DEACTIVATED

if %wave3%==1 set /a wave3=ACTIVATED

if %wave3%==0 set /a wave3=DEACTIVATED

if %wave4%==1 set /a wave4=ACTIVATED

if %wave4%==0 set /a wave4=DEACTIVATED

if %wave5%==1 set /a wave5=ACTIVATED

if %wave5%==0 set /a wave5=DEACTIVATED

if %wave6%==1 set /a wave6=ACTIVATED

if %wave6%==0 set /a wave6=DEACTIVATED

if %wave7%==1 set /a wave7=ACTIVATED

if %wave7%==0 set /a wave7=DEACTIVATED

if %wave8%==1 set /a wave8=ACTIVATED

if %wave8%==0 set /a wave8=DEACTIVATED

echo Type the number of the wave you like to change

echo       wave #        STATUS

echo -----------------------------------

echo     wave 1          %wave1%

echo     wave 2          %wave2%

echo     wave 3          %wave3%

echo     wave 4          %wave4%

echo     wave 5          %wave5%

echo     wave 6          %wave6%

echo     wave 7          %wave7%

echo     wave 8          %wave8%

choice /c 12345678

Solution

  • Running this I got:

    if ==1 set /a wave1=ACTIVATED
    

    This shows that %wave1% has no value and hence you've broken the if statement.

    Use set %wave1=Whatever or add double quotes to the if

    if "%wave1"=="1" set wave1=ACTIVATED
    

    You also dont need /a as it's not arithmetic