4

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

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

2 ответа2

4

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

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

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

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

3

Нет необходимости в FOR , del может принимать групповые символы. Пытаться:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .