Удалить файлы из одной папки, если файл с аналогичным именем не существует в другой папке

Мне нужно удалить файлы из папки A, если файл с таким же именем, но с другим типом файла не существует в папке B.

Например:

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

FOLDER B
file2.jpg
file4.jpg
file6.jpg

Пакетный файл или программное обеспечение будет сравнивать две папки и удалять file1.gif, file3.gif а также file5.gif из папки А.

1 ответ

Решение

Вы можете сделать это прямо из командной строки:
for %F in ("A\*.gif") do @if not exist "B\%~nF.jpg" echo del "%F"
Приведенный выше пример просто выводит команды, чтобы вы могли убедиться, что они будут выполнять то, что вы хотите. После того, как вы уверены, что все в порядке, удалите echo и это на самом деле будет работать delete,
Конечно, вы можете поместить это в пакет, если вы хотите, чтобы заменить % с %% и удалить @ (и, возможно, добавить @echo off вместо)

Другие вопросы по тегам