Quero ter um arquivo em lotes que exclua todas as pastas e arquivos da minha pasta de cache do meu kit de ferramentas sem fio.
Atualmente, tenho o seguinte:
cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db
Isso excluirá todos os arquivos .db no diretório RMS , no entanto, desejo excluir todas as coisas desse diretório. Como posso fazer isso?
batch-file
batch-processing
user69514
fonte
fonte
del /?
no prompt. Ele fornecerá informações sobre como usar a ferramenta. Nesse caso,del *.* /s
funcionaria, mas não no diretório errado!rmdir /s /q c:\users\tbrollo\j2mewtk\2.5.2\appdb\RMS
RMS
diretório, que pode não ser o que foi planejado. (Na verdade, é muitas vezes o que eu não quero, porque perco o registro de data e hora original do diretório e as permissões que ele possui.) Veja minha resposta para saber como remover todo o conteúdo de um diretório, mas deixar o próprio diretório em Lugar, colocar.Respostas:
del *.*
em vez dedel *.db
. Isso removerá tudo.fonte
del . /F /Q
Usar:
Crie um arquivo em lote
Copie o texto abaixo no arquivo em lotes
Ele excluirá todos os arquivos e pastas.
fonte
chcp 10000
a alteração da codificação para UTF-16(rmdir "%%i" /s/q 2>NUL || del "%%i" /s/q >NUL )
suprimir as mensagens de erro e de exclusãoIsso excluirá tudo da pasta (e da própria pasta).
fonte
del *.*
excluirá apenas arquivos, mas não subdiretórios. Para nuke o conteúdo de um diretório, você pode usar este script:As
pushd
alterações no diretório do qual você deseja excluir os filhos. Então, quandord
pede para excluir o diretório atual e todos os subdiretórios, a exclusão dos subdiretórios é bem-sucedida, mas a exclusão do diretório atual falha - porque estamos nele. Isso produz um erro que é2> NUL
engolido. (2 sendo o fluxo de erro).fonte
Acabei de colocar isso junto com o que morty346 postou:
Ele adiciona uma verificação rápida de que a pasta definida na variável existe primeiro, altera o diretório para a pasta e exclui o conteúdo.
fonte
Você pode fazer isso usando
del
e o/S
sinalizador (para solicitar a recursão de todos os arquivos de todos os subdiretórios):O comando RD também pode ser usado. Exclua recursivamente silenciosamente sem um prompt:
Rmdir (rd)
fonte
fonte
Tente o seguinte; funciona para mim.
Eu tenho um aplicativo que despeja dados na minha pasta "C: \ tmp" e o seguinte funciona melhor para mim. Nem pede Sim ou Não para excluir os dados. Fiz um cronograma para que ele seja executado a cada 5 minutos
fonte
del /q c:\tmp\*.*
, o que é cerca de um milhão de vezes mais seguro. Sem mencionarcd
apenas mudará o caminho, não dirigirá.Melhor ainda, digamos que eu queira remover tudo da
C:\windows\temp
pasta.fonte
c:\windows\temp
. Eu não acho que era isso que a pergunta original estava fazendo.Você pode usar a robocopy para espelhar uma pasta vazia na pasta que está limpando.
Também funciona se você não conseguir remover ou recriar a pasta real.
Requer um diretório vazio existente.
fonte
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).
- então eu tenho certeza que isso/E
é redundante.Usar
Esta versão exclui sem perguntar:
Exemplo:
Isso limpará
C:\foo1\foo\foo\foo3
.(Gostaria de mencionar a resposta de Abdullah Sabouin . Houve uma confusão sobre eu copiá-lo. Não notei o post dele. Gostaria de agradecer a você melpomene por apontar erros!)
fonte
rmdir foo
erros sefoo
não for um diretório vazio.Você não pode excluir tudo com um
rmdir
oudel
sozinho:rmdir /s /q
não aceita parâmetros curinga. Entãormdir /s /q *
, erro.del /s /f /q
excluirá todos os arquivos, mas os subdiretórios vazios permanecerão.Minha solução preferida (como eu usei em muitos outros arquivos em lotes) é:
fonte
Apenas uma versão modificada da resposta de GregM :
fonte
Você estava no caminho certo. Basta adicionar código para adicionar a pasta que é excluída novamente.
fonte
Você deve executar este comando para excluir todos os arquivos:
fonte
del *.*
(com um espaço)