Проблема не имеет ничего общего с показанным кодом!
Проблема в
:COUNTER
IF %i%==0 ( GOTO :RESETROUTER ) ELSE (
Поскольку переменная i
не определена, строка будет расширена до
IF ==0 ( GOTO :RESETROUTER ) ELSE (
Это недопустимое выражение.
Чтобы найти такой простой синтаксис, вы должны включить отладку с помощью ECHO ON
.