
У меня есть программа, которая автоматически копирует файлы в каталог, и если она создает дубликат, то называет его так:
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» в каталоге.