Untitled
Anonymous
plain_text
03/24/2026 6:38 PM
2.7 KB
9
Indexable
@echo off
setlocal EnableExtensions
REM ===== CONFIG =====
set "SRC=D:\EMPRESA"
set "BASE_DEST=F:\SERVIDOR_NOVO"
set "LOGDIR=D:\BACKUP\logs"
set "RETENCAO=7"
REM ===== DATA SEGURA =====
for /f %%I in ('wmic os get localdatetime ^| find "."') do set datetime=%%I
set "DATA=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%"
set "DEST=%BASE_DEST%\%DATA%"
set "LOGFILE=%LOGDIR%\backup_hd_%DATA%.log"
REM ===== CHECAR HD =====
if not exist "F:\" (
echo ERRO: HD externo nao conectado!
exit /b 2
)
REM ===== CRIAR PASTAS =====
if not exist "%BASE_DEST%" mkdir "%BASE_DEST%"
if not exist "%DEST%" mkdir "%DEST%"
if not exist "%LOGDIR%" mkdir "%LOGDIR%"
echo ==========================================
echo BACKUP EMPRESA - %DATA%
echo ==========================================
echo Origem: %SRC%
echo Destino: %DEST%
echo ==========================================
echo ===== INICIO %date% %time% ===== >> "%LOGFILE%"
REM ===== ROBOCOPY =====
robocopy "%SRC%" "%DEST%" /MIR /MT:8 /R:2 /W:2 /XJ /FFT /ZB /TEE /LOG+:"%LOGFILE%"
set "RC=%errorlevel%"
echo ===== FIM %date% %time% | ExitCode=%RC% ===== >> "%LOGFILE%"
echo ==========================================
echo Robocopy terminou com codigo %RC%
echo ==========================================
REM ===== LIMPEZA (SO SE DEU CERTO) =====
if %RC% LSS 8 (
echo Limpando backups antigos...
powershell -NoProfile -Command ^
"$base='F:\SERVIDOR_NOVO'; $dias=%RETENCAO%; ^
Get-ChildItem $base -Directory | ^
Where-Object { $_.Name -match '^\d{4}-\d{2}-\d{2}$' } | ^
Sort-Object Name -Descending | ^
Select-Object -Skip $dias | ^
ForEach-Object { Remove-Item $_.FullName -Recurse -Force }"
) else (
echo ERRO no backup. Nao vou apagar backups antigos.
)
echo ==========================================
echo PROCESSO FINALIZADO
echo ==========================================
timeout /t 3 >nul
exit /b %RC%
)
)
)Editor is loading...
Leave a Comment