Anexar ao início do nome do arquivo

Anexar ao início do nome do arquivo

Estou tentando adicionar a palavra [Replay] a todos os arquivos mp3 em uma pasta usando um arquivo em lote da seguinte forma:

@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a

Mas não renomeará os arquivos.

todos os exemplos que tentei pesquisar no Google acrescentam a palavra, mas passam pelos próximos caracteres do nome do arquivo, só preciso adicionar a palavra ao início sem passar as letras.

Alguma ideia?

Responder1

Existem três problemas com seu arquivo em lote:

  • Em arquivos em lote, você deve usar %%aem vez de %a.

  • %%aconterá o caminho completo, não apenas o nome do arquivo.

  • A renomeação falhará se houver espaços no nome do arquivo.

Em geral, também recomendo deixar echoativado durante a solução de problemas.

Em vez disso, tente isto:

cd /d c:\folder
for %%a in (*.mp3) do ren "%%a" "[Replay]%%a"

Se isso renomear os arquivos duas vezes, forestará lendo as entradas do diretório conforme avança. Como solução alternativa, você pode salvar a lista em um arquivo temporário:

cd /d c:\folder
dir /b *.mp3 > temp
for /f "delims=" %%a in (temp) do ren "%%a" "[Replay]%%a"
del temp

informação relacionada