Questão Como recursivamente excluir o diretório da linha de comando no windows?


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


212


origem




Respostas:


deltree se eu me lembro do meu DOS.


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

RMDIR /S

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

rmdir c:\test /s

Isso faz o mesmo, sem prompts:

rmdir c:\test /s /q

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

runas /user:Administrator cmd
rmdir c:\test /s /q

311



@FarmBoy, desculpas, parece que minhas memórias estão longe demais. Eu atualizei a resposta para o Windows XP e mais recente. - Colin Pickard
sim deltree é um comando antigo do DOS. Foi removido no XP e substituído por rmdir /s - heavyd
O que significa a bandeira / s? - 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
@MikeR, pode significar "subdiretórios" ou algo assim. findstr tem o mesmo parâmetro, o que faz mais sentido em seu caso, então talvez eles sejam os mesmos para consistência. - Sam


Se você deseja excluir uma estrutura de pastas longa e complicada do prompt de comando que o RmDir não vai tocar e nem mesmo o Explorer pode exibir, descobri que o 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á tudo que não estiver na pasta de origem.

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

Nesse caso, os caminhos das pastas eram tão longos que nem caberiam na janela de prompt de comando Screen Buffer, mas o Robocopy percorrerá a estrutura e removerá quaisquer arquivos e pastas "extras" (ou seja, qualquer coisa que não esteja na nova pasta vazia, que é tudo ).


54



Esta é a única solução que funcionará quando seu caminho tiver mais de 250 caracteres estranhos - Calm Storm


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

rm C:\path\to\delete -r -f[orce]

9



O Windows 10 diz -f é ambíguo. Mas você pode correr rm -r -force <path> - BrunoLM


Para mim, o que funciona é

del /s dir

Você pode adicionar /q para desativar a confirmação. Eu nunca consegui rmdir trabalhando (no XP)


4



Você provavelmente deve parar de usar o XP, ele não é mais suportado ... - Eric Wilson
Para mim, isso remove todos os arquivos de forma recursiva, mas não está excluindo os próprios diretórios - dirtambém não é removido. - sergiol


Se você tem um caminho 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 desligou.

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

Este lote joga pingue-pongue entre os dois diretórios leer e leer2 e corta 8 'bibliotecas' cada vez. Se o seu caminho contiver arquivos, você terá que adicionar outros 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

2





De CMD Basta executar o RD / s C: \ path \ to \ delete Pressione Y para o prompt

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

Referência Corre ajuda RD da linha de comando


2



Obrigado pela sua resposta, mas esta informação já estava na resposta aceita. (rd e rmdir são os mesmos.) Talvez caberia como um comentário lá. - Ben N


Isso excluirá "minha pasta" sem prompt:

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

0