saas_api/python_limpa_cache.bat

89 lines
2.3 KiB
Batchfile

@echo off
setlocal EnableExtensions EnableDelayedExpansion
:: ===== Configuração/ajuda =====
if /I "%~1"=="-h" goto :help
if /I "%~1"=="/h" goto :help
if /I "%~1"=="--help" goto :help
:: Pasta raiz = 1º argumento ou pasta atual
set "ROOT=%~1"
if not defined ROOT set "ROOT=%cd%"
:: Checa flag /dry-run em qualquer argumento
set "DRYRUN="
for %%A in (%*) do (
if /I "%%~A"=="/dry-run" set "DRYRUN=1"
)
:: Normaliza ROOT removendo aspas extras
for %%# in ("%ROOT%") do set "ROOT=%%~f#"
if not exist "%ROOT%" (
echo [ERRO] Pasta nao encontrada: "%ROOT%"
exit /b 1
)
:: ===== Timestamp e log =====
set "TS=%date%_%time%"
set "TS=%TS:/=%"
set "TS=%TS::=%"
set "TS=%TS:.=%"
set "TS=%TS: =0%"
set "LOG=%ROOT%\cleanup_pycache_%TS%.log"
echo ================================================== > "%LOG%"
echo Limpeza de __pycache__ >> "%LOG%"
echo Pasta raiz: "%ROOT%" >> "%LOG%"
if defined DRYRUN (echo Modo: DRY-RUN (apenas listar) >> "%LOG%") else (echo Modo: EXECUTANDO REMOCOES >> "%LOG%")
echo Iniciado: %date% %time% >> "%LOG%"
echo ================================================== >> "%LOG%"
set /a FOUND=0, OK=0, ERR=0
:: ===== Procura e (opcionalmente) remove =====
for /f "delims=" %%D in ('dir /ad /b /s "%ROOT%\__pycache__" 2^>nul') do (
set /a FOUND+=1
if defined DRYRUN (
echo [LISTAR] "%%D"
>>"%LOG%" echo [LISTAR] "%%D"
) else (
echo [APAGAR] "%%D"
rd /s /q "%%D" 1>nul 2>nul
if exist "%%D" (
set /a ERR+=1
>>"%LOG%" echo [FALHA] "%%D"
) else (
set /a OK+=1
>>"%LOG%" echo [OK] "%%D"
)
)
)
echo.>>"%LOG%"
echo Pastas encontradas: %FOUND% >> "%LOG%"
echo Removidas com sucesso: %OK% >> "%LOG%"
echo Falhas: %ERR% >> "%LOG%"
echo Finalizado: %date% %time% >> "%LOG%"
:: ===== Resumo no console =====
echo.
echo ===== RESUMO =====
echo Pasta raiz: "%ROOT%"
if defined DRYRUN (echo Modo: DRY-RUN ^(nao removeu nada^))
echo Pastas encontradas: %FOUND%
if not defined DRYRUN (
echo Removidas com sucesso: %OK%
echo Falhas: %ERR%
)
echo Log salvo em: "%LOG%"
exit /b 0
:help
echo Uso:
echo cleanup_pycache.bat [PASTA_RAIZ] [/dry-run]
echo.
echo Ex.: cleanup_pycache.bat "D:\Projetos\MeuApp"
echo Ex.: cleanup_pycache.bat /dry-run
echo Ex.: cleanup_pycache.bat "D:\Repos" /dry-run
exit /b 0