CMD: Como eu excluo todo o conteúdo de todos os diretórios (no diretório atual) sem excluir os próprios diretórios?

0

Por exemplo:

Eu estou no diretório:

F: \ Data

Dentro deste diretório, eu tenho quatro diretórios:

F: \ Data & gt; dir
22179 22915 23459 23460

Esses diretórios possuem vários conteúdos, incluindo diretórios e arquivos. Estou tentando executar algo como:

rmdir / s * \ *

onde eu apago todo o conteúdo desses diretórios numerados, enquanto deixo os diretórios vazios. Existe um one-liner que pode fazer isso, ou eu tenho que percorrer os subdiretórios?

merlin2011
fonte
del /s /q *.* deve fazê-lo, mas não uma questão de programação
Damien_The_Unbeliever
Eu realmente não sei se o que estou pedindo é possível. Eu estou procurando uma solução simples e limpa para o que eu sinto que deve ser um problema simples, mas eu não sei se a linha de comando do Windows pode fazê-lo.

Respostas:

1
(for /d %A in (*) do @for /d %B in ("%A\*") do @rd /s /q "%~B")&del /s /q *.* >nul

É um transatlântico - mas eu não diria que é simples. Ele percorre os primeiros dois níveis da árvore, mas tudo mais profundo será removido sem mais looping. Se em um arquivo de lote,% A e% B se tornarão %% A e %% B

Eu não tinha certeza se você queria que todos os arquivos fossem excluídos da sua raiz (F: \ data no seu caso). O acima irá apagar os arquivos encontrados em sua raiz.

Se você quiser preservar os arquivos em root, então eu acho que isso deve funcionar (eu não testei este)

for /d %A in (*) do @(@for /d %B in ("%A\*") do @rd /s /q "%~B")&@del /q "%A\*.* >nul

Os símbolos @ podem ser removidos de ambos os conjuntos de código - eles estão lá apenas para evitar que cada nível do comando seja ecoado.

dbenham
fonte
A primeira linha faz exatamente o que eu precisava. Obrigado!
merlin2011
4

Tente isso, eu acho que isso vai ajudar ....

RD / s / q (e, em seguida, o caminho para a pasta que deve ser removido)

ele irá remover todo o conteúdo com a própria pasta

Vinay Kumar
fonte
1

Faz DEL /S /Q *.* Trabalho para você?

JohnD
fonte
Isso fica muito próximo, mas deixa mais do que os subdiretórios de nível superior.
Ou seja, se eu tiver um diretório 22179 \ Docs, ele não removerá esse diretório e eu gostaria.