Excluir arquivos ou pasta recursivamente no Windows CMD

135

Como faço para excluir arquivos ou pastas recursivamente no Windows na linha de comando?

Eu encontrei esta solução onde o caminho que dirigimos na linha de comando e executamos esse comando.

Eu dei um exemplo com uma pasta de extensão de arquivo .svn:

for /r %R in (.svn) do if exist %R (rd /s /q "%R")
modasser
fonte
O que você quer dizer com "onde o caminho seguimos" ?
Peter Mortensen

Respostas:

129

Por favor, execute os seguintes passos:

  1. Abra o prompt de comando
  2. Mude o diretório para o caminho necessário
  3. Dê o seguinte comando

    del /S *.svn
    
DGuntoju
fonte
4
Não funciona para mim, exclui apenas os arquivos no diretório atual.
Delphirules
119

As outras respostas não funcionaram para mim, mas isso funcionou:

del /s /q *.svn
rmdir /s /q *.svn

/ q desativa o prompt Sim / Não

/ s significa excluir o (s) arquivo (s) de todos os subdiretórios.

Lucas
fonte
Acho que minhas necessidades são as mesmas que você está tentando fazer - estou tentando excluir todas as pastas .svn em um diretório de projeto e todos os subdiretórios. No Windows 2012, esta resposta não está funcionando para mim. Ele está excluindo a pasta .svn no diretório atual, mas não de nenhum dos diretórios filho.
18716 Jim
42

Você pode usar isso no batscript:

rd /s /q "c:\folder a"

Agora, basta alterar c:\folder apara a localização da sua pasta. A cotação é necessária apenas quando o nome da pasta contém espaços.

Sean Vaughn
fonte
Este comando não está funcionando e gerando erro, como mostrado
abhayk
5
A menos que seu diretório realmente tenha um space ano nome, deixe de fora essa parte.
Jesse Chisholm
22
RMDIR path_to_folder /S

ex. RMDIR "C:\tmp" /S

Observe que você será solicitado se realmente deseja excluir a pasta "C: \ tmp". A combinação com a opção / Q removerá a pasta silenciosamente (ex. RMDIR "C:\tmp" /S /Q)

Anton
fonte
8

Para exclusão do arquivo, escrevi o seguinte arquivo em lotes simples, que excluiu todos os arquivos .pdf recursivamente:

del /s /q "\\ad1pfrtg001\AppDev\ResultLogs\*.pdf"
del /s /q "\\ad1pfrtg001\Project\AppData\*.pdf"

Mesmo para o diretório local, podemos usá-lo como:

del /s /q "C:\Project\*.pdf"

O mesmo pode ser aplicado para exclusão de diretório, onde apenas precisamos alterar del com rmdir .

khichar.anil
fonte
4

Se você deseja excluir uma extensão específica recursivamente, use o seguinte:

For /R "C:\Users\Desktop\saleh" %G IN (*.ppt) do del "%G"
saleh ahmed
fonte
3

Você também pode fazer:

del /s /p *.{your extension here}

O /pprompt solicitará cada arquivo encontrado, se você estiver nervoso por excluir algo que não deveria.

Michael Armes
fonte
2

Use o rmdir do Windows comando

Ou seja, rmdir / S / Q C: \ Temp

Também estou usando os que estão abaixo há alguns anos, na perfeição.

Confira outras opções com: forfiles /?

Excluir SQM / Telemetria na pasta do Windows recursivamente

forfiles /p %SYSTEMROOT%\system32\LogFiles /s /m *.* /d -1 /c "cmd /c del @file"

Excluir arquivos TMP do Windows recursivamente

forfiles /p %SYSTEMROOT%\Temp /s /m *.* /d -1 /c "cmd /c del @file"

Excluir arquivos e pastas TEMP do usuário recursivamente

forfiles /p %TMP% /s /m *.* /d -1 /c "cmd /c del @file"
mjoao
fonte
2

Para limpar completamente uma pasta com comandos nativos e obter um logon sobre o que foi feito.

aqui está uma maneira incomum de fazer isso:

vamos assumir que queremos limpar o diretório d: \ temp

mkdir d:\empty
robocopy /mir d:\empty d:\temp
rmdir d:\empty
Máx.
fonte
Esta é uma solução muito inteligente que resolveu meu problema. Eu usei o robocopy para copiar meu diretório AppData, sem pensar no Junction auto-referenciado. Essa era a única maneira de remover todos os arquivos ocultos recursivamente. Nunca esqueça o / xj!
Chris Larabell 28/04
0

Para arquivos ocultos, tive que usar o seguinte:

DEL /S /Q /A:H Thumbs.db
Selrac
fonte
Desatualizado. O Windows XP não é suportado pela microsoft co.
Mesalcode
Eu tive que usar isso para excluir arquivos .dcm que foram deixados em uma restauração de backup (Windows 10)
Gerald Murphy
0
dir /b %temp% >temp.list
for /f "delims=" %%a in (temp.list) do call rundll32.exe advpack.dll,DelNodeRunDLL32 "%temp%\%%a"
alexsupra
fonte