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

8

Мне нужно удалить файлы из папки 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из папки А.

ajcw
источник

Ответы:

7

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

WMZ
источник
Это сработало отлично - я бы хотел проголосовать дважды. Большое спасибо.
ajcw
Также работает, если вы хотите удалить файлы из A, которые существуют в B:for %F in ("A\*.gif") do @if exist "B\%~nF.jpg" echo del "%F"
PaloDravecky