Como excluir recursivamente o diretório da linha de comando no Windows?

235

Qual é o equivalente do Windows rm -r [directory-name]?

Eric Wilson
fonte

Respostas:

342

deltreese eu me lembro do meu DOS .


Parece que foi atualizado ... é isso que você deseja:

RMDIR /S

Isso remove o diretório C:\test, com prompts:

rmdir c:\test /s

Isso faz o mesmo, sem avisos:

rmdir c:\test /s /q

Em relação à parte sudo da sua pergunta, se você precisar de mais privilégios, primeiro poderá abrir um novo shell como outra conta de usuário usando o runascomando, como este:

runas /user:Administrator cmd
rmdir c:\test /s /q
Colin Pickard
fonte
1
@ Farmacoy, desculpas, parece que minhas memórias vão muito longe atrás. Atualizei a resposta para o Windows XP e mais recente.
Colin Pickard
8
yes deltreeé um antigo comando do DOS. Foi removido no XP e substituído porrmdir /s
heavyd 23/08
3
O que a bandeira / s representa?
Mike R
Por alguma razão, há um problema se você fizer isso no Powershell. Então, basta usar a linha de comando do Windows.
Devid
3
@ MikeR, pode significar "subdiretórios" ou algo assim. findstrtem o mesmo parâmetro, o que faz mais sentido, então talvez eles sejam iguais para consistência.
Sam
57

Se você deseja excluir uma estrutura de pastas longa e complicada do prompt de comando que o RmDir não toca e nem mesmo o Explorer pode exibir, descobri que a robocopy pode ser muito eficiente na remoção da estrutura. No exemplo abaixo, temos uma estrutura massiva dentro do administrador da pasta, a estrutura é tão profunda que nada pode removê-la. Criamos uma nova pasta vazia chamada (estranhamente!) "Nova pasta". Em seguida, usamos o comando robocopy, informando que a pasta de origem é "nova pasta" e a pasta de destino é "D: \ Administrator" com o parâmetro / MIR, o que significa que limpará qualquer coisa que não esteja na pasta de origem.

robocopy "D:\new folder" D:\Administrator /MIR

Nesse caso, os caminhos das pastas eram tão longos que nem cabiam na janela do prompt de comando Buffer de Tela, mas o Robocopy percorre a estrutura e remove todos os arquivos e pastas "extras" (ou seja, qualquer coisa que não esteja na nova pasta vazia, que é tudo )

Sean
fonte
11
Esta é a única solução que funcionará quando o seu caminho tiver mais de 250 caracteres ímpares
Calm Storm
10

Você pode fazer o seguinte no PowerShell, se estiver no Windows Vista +:

rm C:\path\to\delete -r -f[orce]
Devesh Khandelwal
fonte
6
O Windows 10 diz que -fé ambíguo. Mas você pode executarrm -r -force <path>
BrunoLM 6/15
6

Para mim, o que funciona é

del /s dir

Você pode adicionar /qpara desativar a confirmação. Eu nunca consegui rmdirtrabalhar (no XP)

Vincent Fourmond
fonte
6
Você provavelmente deve parar de usar o XP, ele não é mais suportado ...
Eric Wilson
3
Para mim, isso remove todos os arquivos recursivamente, mas não exclui os próprios diretórios - dirtambém não é removido.
sergiol 18/08/16
2

Se você tem um caminho realmente muito longo (como eu fiz por causa do erro do programa java), mesmo o robocopy não pode fazê-lo. Ele desceu por cerca de 30 segundos no meu caminho e depois parou.

Minha solução: se você pode mover todo o caminho do problema de uma pasta para outra, pode cortar recursivamente e repetidamente algumas escadas de diretório a partir do topo.

Este Lote joga pingue-pongue entre os dois diretórios leer e leer2 e corta 8 'bibliotecas' a cada vez. Se o seu caminho contiver arquivos, você precisará adicionar mais comandos para apagá-los.

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop
Paulmann
fonte
2

No CMD Basta executar RD / s C: \ path \ to \ delete Hit Y no prompt

/ s garante que todos os subdiretórios também sejam excluídos.

Referência Execute o RD da ajuda na linha de comando

Rachit Ranjan
fonte
2
Obrigado pela sua resposta, mas esta informação já estava na resposta aceita. ( rde rmdirsão iguais.) Talvez isso caiba como um comentário lá.
Ben N
0

Isso excluirá "minha pasta" sem aviso:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
JerryGoyal
fonte