用于基于最新备份复制文件和文件夹的脚本

时间:2019-06-11 13:48:52

标签: robocopy

我每天在系统上运行备份,并且系统DB本身没有备份,我将很快对其进行更改以移至生产服务器。但是,对于临时而言,我正在寻找Robocopy脚本,该脚本会根据备份的最后日期将所有文件和文件夹从该服务器移至网络位置。

我在服务器上保留了5天的备份时间,该备份会自动删除。以下格式显示了保存备份文件的方式。因此,我希望它实际准备最新的日期,例如6/10/2019是昨天晚上的最后一个良好备份,然后可能要在凌晨2点左右运行此备份或将其复制到网络以保存它在那里很安全,以防系统崩溃。

backup_mssql_10017_fullbackup_06_10_2019_23_00



robocopy \\Server\D$\ME\SD\backuplocation\backupfolder and files

\\network file share\ME\ME Backups Daily\ Copy /e 

我不确定该如何备份最新的备份文件夹,因为该位置有5天的备份文件夹。

所以,我希望它选择第一个或最上面的一个(最新的)并复制它。不要移动它。

backup_mssql_10017_fullbackup_06_10_2019_23_00
backup_mssql_10017_fullbackup_06_09_2019_23_00
backup_mssql_10017_fullbackup_06_08_2019_23_00
backup_mssql_10017_fullbackup_06_07_2019_23_00
backup_mssql_10017_fullbackup_06_06_2019_23_00

1 个答案:

答案 0 :(得分:0)

此循环会将最新文件夹的名称放入变量newest中,并假设最新文件夹是最后一次写入的文件夹:

for /f "delims=" %%a in ('dir /b/ad/od/tw backup_mssql_10017_fullbackup_*') do @set newest=%%a  

然后,在robocopy命令中使用%newest

使用的选项:
/b
/ad个文件夹
/od按日期排序,升序
/tw使用上次修改的时间戳(不是上次访问或创建的)