single line for statement: %%i 'unexpected at this time'
You must be trying to run the command from the command line and not from within a batch file. Use a single % instead of two when running from the command line.
for /r %i in (*) do (echo %i)
Type HELP FOR
from the command line and read the 3rd paragraph.