在一组文件夹中搜索特定文件。如果该文件是文件夹中唯一的文件,则删除该文件夹

在一组文件夹中搜索特定文件。如果该文件是文件夹中唯一的文件,则删除该文件夹

我有一个非常大的电子书库。其结构如下:

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

在我拥有的 11,000 个“书名”文件夹中,大约有 15% 仅包含 .opf 文件,有时包含 .jpeg/.jpg/.png/.gif 封面文件,而没有电子书文件。

我想编写一些东西来查找不包含电子书文件(.pdf / .epub / .mobi)的文件夹并删除“书名”文件夹的内容,“书名”文件夹本身,如果它是“作者姓名”文件夹中唯一的“书名”文件夹,则也删除“作者姓名”文件夹。

我完全了解这一点,但如果其他人无法帮助我,我将继续研究并在这里发布我的结果。

答案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选择德尔没有提示)

  2. 在 Windows 中递归删除空目录

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

相关内容