Exclui arquivos duplicados com o arquivo em lotes do Windows

4

Eu tenho um programa que automaticamente copia arquivos para um diretório, e se ele criar um duplicado, ele irá nomear assim:

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

Eu preciso de uma maneira de excluir todas as duplicatas com um arquivo em lotes do Windows.

Algo ao longo das linhas de:

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

No entanto, isso não funcionará porque isso resolveria para file with duplicate - 1.xxx - 1

    
por Chris Sobolewski 12.09.2011 / 03:19

2 respostas

4

Se você quiser excluir todos os arquivos com um nome que termine em - ? , você está próximo.

Tente isto:

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

Você precisará duplicar os sinais de porcentagem se estiver executando um arquivo em lote. E teste com um echo em vez de um del primeiro.

    
por 12.09.2011 / 03:34
3

Não há necessidade de FOR , del aceitar curingas. Experimente:

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

Combinará qualquer coisa com o sufixo "- 1.xxx" no diretório.

    
por 12.09.2011 / 03:33