Exclua arquivos duplicados com arquivo em lote do Windows

Exclua arquivos duplicados com arquivo em lote do Windows

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

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

Preciso excluir todas as duplicatas com um arquivo em lote do Windows.

Algo como:

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

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

Responder1

Se você deseja excluir todos os arquivos com um nome que termina em - ?, você está perto.

Experimente isto:

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

Você precisará dobrar os sinais de porcentagem se estiver executando a partir de um arquivo em lote. E teste com um echoem vez de delprimeiro.

Responder2

Não há necessidade de FOR, delpode aceitar curingas. Tentar:

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

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

informação relacionada