Шукайте певний файл у наборі папок. Якщо цей файл єдиний у папці, видаліть папку


1

У мене дуже велика бібліотека електронних книг. Структура така:

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

Близько 15% 11000 папок "Ім'я книги" містять лише файл .opf, а іноді .jpeg / .jpg / .png / .gif файл обкладинки, без файлів електронних книг.

Я хотів би написати щось, у якому можна знайти папки, які не містять файл електронної книги (.pdf / .epub /L.com) та видалити вміст папки "Ім'я книги", саму папку "Ім'я книги" та якщо вона є єдиною папкою "Ім'я книги" у папці "Ім'я автора", також видаліть папку "Ім'я автора".

Я цілком знав це, але продовжуватиму дослідження та розміщую свої результати тут, якщо хтось інший не зможе мені допомогти.

Відповіді:


1

Якщо припустити, що ви перебуваєте в останній 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, щоб del не мав підказки)

  2. Рекурсивно видаляйте порожні каталоги в Windows :

    for /f "delims=" %D in ('dir /s/b/ad ^| sort /r') do rd "%D"
    

Дякую Сальво, яке чудове рішення. Я скоро спробую це.
Боб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.