Missing operator???
Posted: 15 Apr 2012 08:46
Code: Select all
@ECHO ON
SET base=3
SET power=3
FOR /L %%A IN (1,1,%power%) DO CALL :Count %%A
PAUSE
GOTO :EOF
:Count index
SET /A times=%1-1
IF NOT %times%==0 (
CALL :ToPower %base% %times%
SET /A skip=10-%n%
ECHO %skip%
)
PAUSE
GOTO :EOF
:ToPower
SET n=1
FOR /L %%C IN (1,1,%2) DO SET /A n*=%1
GOTO :EOF
PAUSE
C:\test>SET base=3
C:\test>SET power=3
C:\test>FOR /L %A IN (1 1 3) DO CALL :Count %A
C:\test>CALL :Count 1
C:\test>SET /A times=1-1
C:\test>IF NOT 0 == 0 (
CALL :ToPower 3 0
SET /A skip=10-!n!
ECHO
)
C:\test>GOTO :EOF
C:\test>CALL :Count 2
C:\test>SET /A times=2-1
C:\test>IF NOT 1 == 0 (
CALL :ToPower 3 1
SET /A skip=10-!n!
ECHO
)
C:\test>SETLOCAL ENABLEDELAYEDEXPANSION
C:\test>SET n=1
C:\test>FOR /L %C IN (1 1 1) DO SET /A n*=3
C:\test>SET /A n*=3
C:\test>GOTO :EOF
Missing operator.
ECHO is on.
C:\test>GOTO :EOF
C:\test>CALL :Count 3
C:\test>SET /A times=3-1
C:\test>IF NOT 2 == 0 (
CALL :ToPower 3 2
SET /A skip=10-!n!
ECHO 9
)
C:\test>SETLOCAL ENABLEDELAYEDEXPANSION
C:\test>SET n=1
C:\test>FOR /L %C IN (1 1 2) DO SET /A n*=3
C:\test>SET /A n*=3
C:\test>SET /A n*=3
C:\test>GOTO :EOF
Missing operator.
9
C:\test>GOTO :EOF
C:\test>ENDLOCAL
C:\test>PAUSE
Press any key to continue . . .
Simple maths. But just don't know why it causes errors.
Please help!