I wish to execute a batch file and have it call itself 10 times.
set /a iteration=0%1+1
IF %iteration% EQU 10 exit
rem Taskkill /IM aspnet_compiler.exe /F
ti
You've got 0%1
in that expression - if your argument is 8, that expands to 08
, which isn't a valid octal number (8 is not an octal digit), and so you get that error. I'm not a batch file expert, but I guess you want to leave off the leading 0
:
set /a iteration=%1+1
Here's a link to some SET command documentation.
As Carl said, the leading zero is the sign for octal numbers.
Sometimes a leading zero seems to be useful, as you would avoid an error in case %1
is empty.
But then you got this type of problems, which can be solved by using a little bit other way.
Prepending a 1
or better 100
and then building the modulo will also work with the numbers 8 and 9 (and also empty input).
set /a iteration=1000%1 %% 100 + 1
But in your case it removing the zero should be enough, even if %1
is empty you got a valid expression.
set /a iteration=%1 + 1
Would expand to set /a iteration= + 1