Como faço para excluir recursivamente todos os arquivos, exceto aqueles em diretórios ocultos?
Use o seguinte arquivo em lotes:
@echo off
setlocal enableDelayedExpansion
rem walk file tree, 1/ finding non-hidden directories then 2/ finding files.
rem 1/ find non-hidden directories
for /f "usebackq tokens=*" %%i in ('dir /b /s /a:d-h') do (
rem 2/ find and delete files
echo Processing directory: %%i
for /f "usebackq tokens=*" %%j in ('dir /b /a:-d %%i 2^> nul') do (
echo Processing file: %%i\%%j
del /f /q "%%i\%%j"
)
)
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- del - Exclua um ou mais arquivos.
- dir - Exibe uma lista de arquivos e subpastas.
- para / f - Comando Loop contra os resultados de outro comando.
- redirecionamento - Operadores de redirecionamento.