Поиск определенного файла в наборе папок. Если этот файл является единственным в папке, удалите папку

378
Bob

У меня очень большая библиотека электронных книг. Структура выглядит следующим образом:

/Library /Author Name /Book Name /{.pdf .mobi .epub eBook files}, {.opf metadata files}, {.jpg book cover files} 

Около 15% из 11 000 папок «Имя книги», которые у меня есть, содержат только файл .opf и иногда обложку .jpeg / .jpg / .png / .gif без файлов электронных книг.

Я хотел бы написать что-то, что может найти папки, которые не содержат файл электронной книги (.pdf / .epub / .mobi) и удалить содержимое папки «Имя книги», самой папки «Имя книги», и если это является единственной папкой «Имя книги» в папке «Имя автора», также удалите папку «Имя автора».

Я полностью знаю об этом, но продолжу исследовать и публиковать свои результаты здесь, если кто-то другой не сможет мне помочь.

1

1 ответ на вопрос

1
SΛLVΘ

Предполагая, что у вас последняя версия Windows ... Я бы разбил это на два шага.

CD к "Библиотеке" и ...

  1. Удалить файлы в папках без электронных книг:

    for /f "delims=" %F in ('dir /s/b/a-d *.opf') do dir /b "%~pF*.pdf" "%~pF*.epub" "%~pF*.mobi" || del "%~pF*.*" 

    (Если вам нужно удалить много файлов, добавьте параметр / q, чтобы запретить вывод запросов)

  2. Рекурсивно удалить пустые каталоги в Windows :

    for /f "delims=" %D in ('dir /s/b/ad ^| sort /r') do rd "%D" 
Спасибо Salvo, что отличное решение. Я собираюсь попробовать это в ближайшее время. Bob 9 лет назад 0

Похожие вопросы