@echo off
::被复制的源文件夹
set sourceDir=D:\易艾ERP\ERP
set sourceDir0=D:\易艾ERP\ERP\DataBackup
::找到最新的文件名bak
FOR /F "delims=|" %%I IN ('DIR "%sourceDir0%\*.bak" /B /O:D') DO SET NewestFile=%%I
echo clear flie.......
::创建临时文件夹,保证文件时最新拷贝的
md %sourceDir%\tmpfile
echo copy files......
::开始拷贝和脚本同级目录下的文件夹 到tmpfile改文件夹下
echo %NewestFile%
xcopy /E/Y %sourceDir0%\%NewestFile% %sourceDir%\tmpfile
echo copy finish
:: 删除D:\temp目录下7天前的文件
Forfiles /p %sourceDir%\backup /s /d -7 /m *.* /c "cmd /c del /q /f @path"
echo start packing........
::开始压缩文件tmpfile ,压缩后的文件时EIERPSQL+当日当天时间
"D:\Program Files\WinRAR\WinRAR.exe" a -ep1 -p123456 %sourceDir%\backup\EIERPSQL%date:~0,4%%date:~5,2%%date:~8,2%.zip %sourceDir%\tmpfile
echo pack finish!!
::删除临时文件夹
rd /s/q %sourceDir%\tmpfile
exit
注意一点,在保存以上脚本文件为bat文件时,由于这里边的目录有中文,所以要保存成ANSI编码格式

运行测试一下脚本文件是否能正常使用,如果没有问题,进行下一步。
再利用系统的定时功能,每天定时运行

本文介绍了一个Windows批处理脚本,用于自动查找并复制最新的 bak 文件到临时文件夹,然后进行文件备份,同时删除7天前的旧备份,并使用WinRAR进行压缩。脚本涉及目录操作、文件查找、日期处理和压缩技术,确保了数据的安全性和有效性。
632

被折叠的 条评论
为什么被折叠?



