CÓDIGO:
@echo off
chcp 65001 > nul title Exclusão Permanente - Com Opções Avançadas color 0C :: ====================== MENU PRINCIPAL ====================== :menu cls echo ====================================================================== echo FERRAMENTA DE EXCLUSÃO PERMANENTE DE DADOS echo ---------------------------------------------------------------------- echo ⚠️ AVISO: Tudo será apagado DEFINITIVAMENTE, NÃO vai para a lixeira! echo Dados sobrescritos para IMPEDIR qualquer recuperação. echo ====================================================================== echo. :: Pede caminho da pasta set /p "caminho=📂 Digite o caminho completo da pasta: " if "%caminho%"=="" ( echo ❌ Erro: Você não informou nenhum caminho! pause goto menu ) :: Verifica se a pasta existe if not exist "%caminho%" ( echo ❌ Erro: Pasta não existe ou caminho incorreto! pause goto menu ) :: ESCOLHA DE AÇÃO echo. echo 📋 ESCOLHA O QUE DESEJA FAZER: echo 1 - Excluir TODOS os arquivos, subpastas E a pasta principal echo 2 - Excluir APENAS arquivos e subpastas, MANTER a pasta principal vazia echo. set /p "opcao=Digite o número da opção desejada (1 ou 2): " :: Valida opção if "%opcao%"=="1" ( set "acao=excluir_tudo" ) else if "%opcao%"=="2" ( set "acao=manter_pasta" ) else ( echo ❌ Erro: Digite apenas 1 ou 2! pause goto menu ) :: ESCOLHA DE CICLOS DE SOBRESCRITA echo. echo 🔁 QUANTAS VEZES SOBRESCREVER OS DADOS? echo 1 vez = Rápido / segurança básica echo 3 vezes = Segurança média (recomendado) echo 7 vezes = Segurança alta (padrão militar) echo 10+ vezes = Segurança máxima (mais demorado) echo. set /p "ciclos=Digite o número de ciclos: " :: Valida número de ciclos set "numero_valido=S" echo %ciclos%| findstr /r "^[0-9]*$" > nul || set "numero_valido=N" if "%numero_valido%"=="N" ( echo ❌ Erro: Digite apenas números inteiros! pause goto menu ) if %ciclos% LSS 1 ( echo ❌ Erro: O número deve ser pelo menos 1! pause goto menu ) :: CONFIRMAÇÃO FINAL echo. echo ⚠️ CONFIRA ANTES DE CONTINUAR: echo Pasta: %caminho% echo Ação: if "%acao%"=="excluir_tudo" (echo → Excluir tudo) else (echo → Apagar só conteúdo, manter pasta) echo Ciclos de sobrescrita: %ciclos% vez(es) echo. set /p "confirma=Digite SIM para iniciar ou qualquer tecla para cancelar: " if /i not "%confirma%"=="SIM" ( echo ✅ Ação cancelada. Nenhuma alteração feita. pause exit /b ) echo. echo 🚀 Iniciando... Aguarde, depende do tamanho dos arquivos. echo ---------------------------------------------------------------------- :: ====================== SOBRESCRITA DOS DADOS ====================== for /l %%c in (1,1,%ciclos%) do ( echo. echo 🔄 Ciclo %%c de %ciclos% em andamento... for /r "%caminho%" %%f in (*) do ( echo Sobrescrevendo: %%~nxf :: Sobrescreve com dados aleatórios (4KB por vez) fsutil file createnew "%%f.tmp" 4096 > nul copy /y "%%f.tmp" "%%f" > nul del /f /q "%%f.tmp" > nul ) ) :: ====================== EXECUTA A AÇÃO ESCOLHIDA ====================== echo. echo 🗑️ Processando remoção... if "%acao%"=="excluir_tudo" ( :: Exclui tudo: arquivos, subpastas e pasta principal rd /s /q "%caminho%" > nul if not exist "%caminho%" ( echo ✅ SUCESSO: Pasta e todo o conteúdo foram removidos permanentemente. ) else ( echo ❌ ERRO: Não foi possível remover a pasta principal. Verifique permissões. ) ) else ( :: Exclui só arquivos e subpastas, mantém a pasta principal del /f /s /q "%caminho%\*" > nul for /d %%d in ("%caminho%\*") do rd /s /q "%%d" > nul :: Verificação dir /b /a "%caminho%" | findstr /r /c:"." > nul if %errorlevel% equ 1 ( echo ✅ SUCESSO: Todo o conteúdo foi apagado. A pasta permanece vazia. ) else ( echo ❌ ERRO: Alguns arquivos/pastas não puderam ser removidos. ) ) echo ---------------------------------------------------------------------- pause exit /bComo usar:
- Copie todo o código acima;
- Abra o Bloco de Notas, cole o código;
- Salve o arquivo com o nome
Excluir_Permanente.bat(certifique-se de que a extensão é.bate não.txt); - Clique duas vezes para executar;
- Siga as instruções na tela: digite o caminho completo da pasta (ex:
C:\Usuários\SeuNome\PastaParaApagar) e confirme.
Observações técnicas:
- O código usa
fsutil(nativo do Windows) para gerar dados temporários e sobrescrever o conteúdo dos arquivos antes de apagar; - A exclusão com
rd /s /qremove tudo sem passar pela lixeira; - Funciona em Windows 7, 8, 10 e 11.