А так же интересно стало.. что то сразу не приметил. Вот здесь:
Код:

for /f "delims=" %%i in ('
"dir /a-d/b *.jpg 2>nul"
') do (
call:rename "%%i"
)
мы создаем переменную, в ней собственно создаем список всех *.jpg файлов в папке и переходим к метке :rename передавая ей переменную i, но когда смотрим метку :rename
Код:

:rename
set pref=00%cnt%
ren %1 "name_%pref:~-3%.jpg"
set /a cnt+=1
goto:eof
то видим что она работает с переменной 1... так и должно быть?