@echo off
chcp 65001 >nul 2>&1
setlocal enabledelayedexpansion

rem 设置源目录和目标目录
set "source_dir=E:\数据备份"
set "target_dir=F:\U盘数据"  rem 请替换为你的移动硬盘实际路径

rem 检查目标目录是否存在，如果不存在则创建
if not exist "!target_dir!" (
    mkdir "!target_dir!"
    echo 创建目标目录: "!target_dir!"
)

rem 获取今天的日期
for /f "tokens=1-3 delims=- " %%a in ('powershell -Command "(Get-Date).ToString('yyyy-MM-dd')"') do (
    set "today=%%a%%b%%c"
)

rem 格式化日期为 YYYYMMDD
set "today=!today:-=!"

rem 备份今天的目录
if exist "!source_dir!\!today!" (
    xcopy "!source_dir!\!today!" "!target_dir!\!today!" /E /I /Y
    echo 备份完成: "!source_dir!\!today!" 到 "!target_dir!\!today!"
) else (
    echo 找不到目录: "!source_dir!\!today!"
)

rem 计算并删除前第10天的数据
call :DeleteOldBackup 10

goto :eof

:DeleteOldBackup
rem 获取前第10天的日期
set /a days_ago=%1
set "target_date="
for /f "tokens=1 delims=" %%a in ('powershell -Command "(Get-Date).AddDays(-%days_ago%).ToString('yyyyMMdd')"') do (
    set "target_date=%%a"
)

rem 删除该日期对应的备份文件夹
if exist "!target_dir!\!target_date!" (
    rmdir /S /Q "!target_dir!\!target_date!"
    echo 删除目录: "!target_dir!\!target_date!"
) else (
    echo 没有找到要删除的目录: "!target_dir!\!target_date!"
)

goto :eof

