bat: renomear arquivos recursivamente

bat: renomear arquivos recursivamente

Gostaria de renomear recursivamente todos os arquivos *.doc em uma determinada partição para *.txt. Eu tentei o seguinte sem sucesso ...

@echo off
echo +-------------------------------------------+
echo :         exec cmd in every subdir          :
echo +-------------------------------------------+

FOR /R ".\" %%F IN (.) DO (
    ren "*.doc" "*.txt"
)

@pause

O que estou fazendo de errado?


Atualização: Isso funcionou para mim ... Estou executando isso clicando no arquivo no MS File Explorer (Win7) e tenho .bat definido como executável. Não tentei no prompt do cmd - gostaria de saber se isso causa alguma diferença?

@echo off

FOR /R ".\" %%F IN (.) DO (
 ren "%%F\*.doc" "*.txt"
)
@pause

Responder1

Você tem vários pequenos erros no arquivo em lote.

Aqui está uma versão que funciona na linha de comando:

FOR /R "." %F IN (.) DO ren "%F\*.doc" "*.txt"

E em um .batarquivo:

FOR /R "." %%F IN (.) DO ren "%%F\*.doc" "*.txt"

Testado no Windows 7 de 64 bits:

insira a descrição da imagem aqui

informação relacionada