Eliminar archivos duplicados con un archivo por lotes de Windows

Eliminar archivos duplicados con un archivo por lotes de Windows

Tengo un programa que copia archivos automáticamente a un directorio y, si crea un duplicado, lo nombrará así:

file with duplicate.xxx
file with duplicate - 1.xxx
file with duplicate - 2.xxx

Necesito una forma de eliminar todos los duplicados con un archivo por lotes de Windows.

Algo parecido a:

FOR %f IN (C:\files\*.*) DO del "%f - 1"

Sin embargo, eso no funcionará porque resolveríafile with duplicate - 1.xxx - 1

Respuesta1

Si desea eliminar todos los archivos con un nombre que termina en - ?, entonces estuvo cerca.

Prueba esto:

FOR %%f IN ("C:\files\* - ?.*") DO del "%%f"

Deberá duplicar los signos de porcentaje si lo ejecuta desde un archivo por lotes. Y pruebe con un echoen lugar de un delprimero.

Respuesta2

No es necesario FOR, delpuede aceptar comodines. Intentar:

del "c:\files\* - 1.xxx"

Coincidirá con cualquier cosa con el sufijo "-1.xxx" en el directorio.

información relacionada