Видаліть файли з однієї папки, якщо аналогічно названий файл не існує в іншій папці


8

Мені потрібно видалити файли з папки А, якщо в папці 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з папки А.

Відповіді:


7

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


Це спрацювало чудово - я хотів би проголосувати двічі. Дуже дякую.
ajcw

Також працює, якщо ви хочете видалити файли з A, які існують у B:for %F in ("A\*.gif") do @if exist "B\%~nF.jpg" echo del "%F"
PaloDravecky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.