Eliminar archivos de una carpeta si no existe un archivo con un nombre similar en otra carpeta

8

Necesito eliminar archivos de la carpeta A si un archivo con el mismo nombre pero diferente tipo de archivo no existe en la carpeta B.

Por ejemplo:

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

FOLDER B
file2.jpg
file4.jpg
file6.jpg

El archivo o software por lotes compararía las dos carpetas y las eliminaría file1.gif, file3.gify file5.gifde la carpeta A.

ajcw
fuente

Respuestas:

7

Puede hacerlo directamente desde la línea de comandos: el
for %F in ("A\*.gif") do @if not exist "B\%~nF.jpg" echo del "%F"
ejemplo anterior simplemente imprime los comandos para que pueda verificar que hará lo que desea. Después de estar seguro de que está bien, elimine echoy realmente se ejecutará delete.
Por supuesto, puede poner esto en un lote, si lo desea, reemplace %con %%y elimine @(y probablemente agregue en su @echo offlugar)

wmz
fuente
Esto funcionó perfectamente. Ojalá pudiera votar dos veces. Muchas gracias.
ajcw
También funciona si desea eliminar archivos de A que EXISTEN en B:for %F in ("A\*.gif") do @if exist "B\%~nF.jpg" echo del "%F"
PaloDravecky