Удалить дубликаты файлов с помощью пакетного файла Windows

Удалить дубликаты файлов с помощью пакетного файла Windows

У меня есть программа, которая автоматически копирует файлы в каталог, и если она создает дубликат, то называет его так:

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

Мне нужен способ удалить все дубликаты с помощью пакетного файла Windows.

Что-то вроде этого:

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

Однако это не сработает, потому что это приведет к решениюfile with duplicate - 1.xxx - 1

решение1

Если вы хотите удалить все файлы с именем, заканчивающимся на - ?, то вы были близки к цели.

Попробуй это:

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

Вам нужно будет удвоить знаки процента, если вы запускаете его из пакетного файла. И протестируйте с echoвместо первого del.

решение2

Нет необходимости в FOR, delможно принимать подстановочные знаки. Попробуйте:

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

Будет соответствовать всему, что имеет суффикс «-1.xxx» в каталоге.

Связанный контент