Não se esqueça, o shell não sabe a diferença entre vários argumentos e arquivos com um espaço neles. Você pode usar aspas para dizer ao shell quando um único argumento deve ter um espaço:
Por exemplo, ren %%i %%~nc.%%i
, altere para ren "%%i" "%%~nc.%%i"
E coloque aspas em torno de quaisquer outros argumentos em seu programa que possam ter espaços incorporados.