Exclui uma subpasta com nome específico de todas as subpastas?

6

Eu sei como excluir uma única subpasta ou várias pastas por máscara:

rmdir /s /q C:\Somedir\DirToDelete

ou

rmdir /s /q C:\Somedir\DirsToDelete*

Mas quero excluir todas as subpastas, digamos, com o nome DeleteMe, de todas as subpastas dentro de C: \ Somedir.

Idéias?

    
por Kamarey 19.05.2011 / 17:22

2 respostas

6

Primeiro, você deseja listar todos os diretórios que deseja remover. Então use isso para deletar todos eles. Aqui está um exemplo rápido e sujo usando o que você coloca lá.

for /f "usebackq" %%a in ('"dir C:\Somedir /ad/b/s DirsToDelete"') do rmdir "%%a"

Por favor, teste isso antes de começar o seu ambiente. Eu costumo substituir o rmdir pelo eco para ter certeza de que funciona.

    
por 19.05.2011 / 17:37
5

Outra maneira é (apenas PowerShell)

 Remove-Item -path e:\path\*\path\*\* -Filter *DeleteMe* -WhatIf

Remove todos os DeleteMe dirs recursivos no último caminho "asterisco".

-WhatIf = apenas mostra quais dirs serão removidas, não faça isso - bom para verificar antes de destruir outros dados:)

UPDATE 1 Depois de algum trabalho ... esta atualização é melhor ... linha antes pode excluir apenas as pastas vazias. Isso pode excluir pasta com conteúdo:

get-childitem -path E:\path\*\path\*\* -recurse -filter *DeleteMe* | remove-item -whatif -force -recurse
    
por 06.01.2014 / 15:06