Procura por um arquivo específico em um conjunto de pastas. Se esse arquivo for o único da pasta, exclua a pasta

1

Eu tenho uma biblioteca eBook muito grande. A estrutura é a seguinte:

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

Cerca de 15% das 11.000 pastas "Nome do livro" que eu tenho contêm apenas um arquivo .opf e às vezes um arquivo de capa .jpeg / .jpg / .png / .gif, sem arquivos de e-book.

Gostaria de escrever algo que possa encontrar pastas que não contenham um arquivo de e-book (.pdf / .epub / .mobi) e excluir o conteúdo da pasta "Nome do livro", a pasta "Nome do livro", e se for a única pasta "Nome do livro" na pasta "Nome do autor", exclua também a pasta "Nome do autor".

Sou completamente sabido disso, mas continuarei pesquisando e postando meus resultados aqui se alguém não puder me ajudar.

    
por Bob 26.06.2015 / 01:25

1 resposta

1

Supondo que você esteja em um Windows recente ... eu quebraria isso em duas etapas.

CD para "Biblioteca" e ...

  1. Remova arquivos em pastas sem e-books:

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

    (Se você tiver muitos arquivos para apagar, adicione a opção / q para del não ter prompts)

  2. Deletar recursivamente diretórios vazios no Windows :

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