Remove diretórios vazios

0

Eu encontrei este comando neste site para remover recursivamente os diretórios vazios, mas não pude comentar para fazer esta pergunta, já que eu acabei de me registrar e ter zero rep .......

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

Eu estou hesitante em executá-lo em um servidor (funcionou muito bem em um diretório de teste no meu laptop Win7) ..... Eu o corri dentro do diretório que eu queria que ele começasse dentro Eu deveria apenas executá-lo dentro do diretório deve recursivamente verificar ou existe uma maneira de definir o ponto de partida?

    
por Jamie Lozan 07.07.2015 / 17:05

2 respostas

1

Para iniciar o comando em um diretório diferente

for /f "delims=" %d in ('dir c:\pathtostart /s /b /ad ^| sort /r') do rd "%d"

e altere c:\pathtostart conforme apropriado.

Para usar um arquivo em lotes

Como alternativa, crie um arquivo de lote RemoveEmptyDirs.cmd :

@echo off 
for /f "delims=" %%d in ('dir %1 /s /b /ad ^| sort /r') do rd "%%d"

e ligue da seguinte forma:

RemoveEmptyDirs c:\pathtostart

Para testar antes de remover

Se você estiver hesitante, teste o que acontecerá e substitua rd por echo . Isto irá ecoar a lista de diretórios que seriam removidos.

Quando você estiver satisfeito com a lista, substitua o echo por rd e execute a exclusão.

    
por 07.07.2015 / 17:16
0

Use dir "%~1" . Isso também tratará de caminhos entre aspas, caso você queira iniciar em um diretório que contenha espaços ( RemoveEmptyDirs "C:\program files" ).

    
por 07.07.2015 / 19:13