backup.bat中内容
@echo off
setlocal enabledelayedexpansion
:: 设置字符集为UTF-8,这将会使得控制台能够正确显示中文字符。
chcp 65001
:: 设置源文件夹和目标文件夹
set "source_folder=备份文件夹的原地址"
set "destination_folder=目标地址的地址"
:: 检查目标文件夹是否存在,如果不存在则创建
if not exist "%destination_folder%" mkdir "%destination_folder%"
:: 获取当前日期和时间,用于创建备份文件夹
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=!dt:~2,2!" & set "YYYY=!dt:~0,4!" & set "MM=!dt:~4,2!" & set "DD=!dt:~6,2!"
set "HH=!dt:~8,2!" & set "Min=!dt:~10,2!" & set "Sec=!dt:~12,2!"
set "backup_folder=%destination_folder%\%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
:: 创建备份文件夹
mkdir "!backup_folder!"
:: 执行备份操作,使用xcopy命令复制文件夹及其内容
xcopy /E /I /Y "%source_folder%" "!backup_folder!\"
:: 输出备份完成消息
echo Backup completed: !backup_folder!
endlocal
pause
delete.bat中的内容
@echo off
setlocal
chcp 65001
:: 设置备份文件夹路径
set "backup_folder=目标地址的地址"
:: 调用PowerShell脚本来删除三天前的文件夹
powershell -Command "$limit_date = (Get-Date).AddDays(-3); Get-ChildItem -Path '%backup_folder%' -Directory -Recurse | Where-Object { $_.LastWriteTime -lt $limit_date } | Remove-Item -Recurse -Force; Write-Host 'Deleted backup folders older than 3 days.'"
:: 输出完成消息
echo Deleted backup folders older than 3 days.
endlocal
pause
定时设置
最后在在开始菜单里输入:计算机管理
在任务计划程序中点击创建任务
账户运行权限选最高。然后再触发器中添加定时备份和删除的时间。操作就填bat文件的地址。
后面的条件和设置,按需选择即可。
最后点击确定即可。