
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 echo
en lugar de un del
primero.
Respuesta2
No es necesario FOR
, del
puede aceptar comodines. Intentar:
del "c:\files\* - 1.xxx"
Coincidirá con cualquier cosa con el sufijo "-1.xxx" en el directorio.