FOR variáveis usam um único %
quando executados a partir da linha de comando e duplo %%
quando dentro de um script em lote.
Então, para rodar na linha de comando, você precisa:
for /r %G in (*_abc.txt) do ren "%G" *_abc_xyz.txt
for /r %%G in (*_abc.txt) do ren "%%~G" *_abc_xyz.txt
Continuo recebendo este erro: %% G foi inesperado no momento.
Tags command-line windows