Excluir arquivos de uma pasta se um arquivo com nome semelhante não existir em outra pasta

8

Preciso excluir arquivos da pasta A se um arquivo com o mesmo nome, mas um tipo de arquivo diferente , não existir na pasta B.

Por exemplo:

FOLDER A
file1.gif
file2.gif
file3.gif
file4.gif
file5.gif
file6.gif

FOLDER B
file2.jpg
file4.jpg
file6.jpg

O arquivo de lote ou software iria comparar as duas pastas e excluir file1.gif, file3.gife file5.gifda pasta A.

ajcw
fonte

Respostas:

7

Você pode fazer isso diretamente da linha de comando: O
for %F in ("A\*.gif") do @if not exist "B\%~nF.jpg" echo del "%F"
exemplo acima simplesmente imprime os comandos para que você possa verificar se ele faz o que deseja. Depois de ter certeza de que está tudo bem, remova echoe ele realmente será executado delete.
Obviamente, você pode colocar isso em um lote, se desejar, substitua %por %%e remova @(e provavelmente adicione @echo off)

wmz
fonte
Isso funcionou perfeitamente - eu gostaria de poder votar duas vezes. Muito obrigado.
ajcw
Também funciona se você quiser apagar arquivos de A que existem no B:for %F in ("A\*.gif") do @if exist "B\%~nF.jpg" echo del "%F"
PaloDravecky