bat: cambiar el nombre de archivos recursivamente

bat: cambiar el nombre de archivos recursivamente

Me gustaría cambiar recursivamente el nombre de todos los archivos *.doc en una determinada partición a *.txt. He intentado lo siguiente sin éxito...

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

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

@pause

¿Qué estoy haciendo mal?


Actualización: Esto funcionó para mí... Estoy ejecutando esto haciendo clic en el archivo en MS File Explorer (Win7) y tengo .bat configurado como ejecutable. No lo intenté en el indicador cmd. Me pregunto si esto causa alguna diferencia.

@echo off

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

Respuesta1

Tiene varios errores pequeños en el archivo por lotes.

Aquí hay una versión que funciona desde la línea de comando:

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

Y en un .batarchivo:

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

Probado en Windows 7 de 64 bits:

ingrese la descripción de la imagen aquí

información relacionada