archivo por lotes para mover archivos de subdirectorios al directorio raíz sobrescribiendo archivos con conflictos de nombres

archivo por lotes para mover archivos de subdirectorios al directorio raíz sobrescribiendo archivos con conflictos de nombres

Entonces, solicito ayuda y actualmente estoy tratando de solucionar un problema en mis fotos de Google. Descargué el archivo de mis fotos de Google y tengo un montón de carpetas con archivos/fotos. Estoy intentando escribir un archivo por lotes para mover los archivos/fotos de la carpeta a la raíz de esta unidad portátil que estoy usando para la limpieza.

Hasta ahora tengo esto:

@echo off
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" .
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"

Funciona, el único problema que tengo es que potencialmente podría haber fotos con el mismo nombre de archivo en diferentes carpetas y no quiero sobrescribirlas.

¿Hay algún parámetro que pueda configurar en el comando de movimiento para bloquear la sobrescritura?

Gracias

Respuesta1

¿Hay algún parámetro que pueda configurar en el comando de movimiento para bloquear la sobrescritura?

Puede utilizar el /-Yinterruptor (Habilitar mensaje de confirmación al sobrescribir archivos).

El siguiente truco solucionará el problema npara que el movimiento no se produzca:

echo n|move /-y "%%f" .

Notas:

  • Este truco sólo funciona para un único archivo, sin comodines

  • Si un archivo esnomovido, su siguiente rdcomando fallará con el siguiente error:

    The directory is not empty.
    

Otras lecturas

información relacionada