
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 echo
em vez de del
primeiro.
Responder2
Não há necessidade de FOR
, del
pode aceitar curingas. Tentar:
del "c:\files\* - 1.xxx"
Corresponderá a qualquer coisa com o sufixo "- 1.xxx" no diretório.