使用任务计划程序,如何备份文件夹并删除旧备份

Using Task Scheduler, how do I backup a folder and delete old backups

我目前正在使用任务计划程序每 6 小时将桌面上的一个文件夹备份到另一个文件夹,并使用 xcopy 备份一个批处理文件。例如,我如何删除早于 12 个备份的备份?例如,如果我已经有 12 个备份,并且是下一个 6 小时标记,它会备份源文件夹,然后删除最旧的备份,因为现在有 13 个,所以只有 12 个。这样重复,所以它会循环备份。

我的文件夹格式如下:YYYY-MM-DD_HHMM

(24 小时制)

你说的不是很清楚。假设您的备份是文件夹,名称类似于 BackupYYYYMMDD

dir /b /ad /o-n backup* 为您提供备份文件夹(简单格式,仅目录,按名称排序(从最新开始倒转)*)

将其放入 for /f 以通过跳过 12 行来解析输出,结果是:

for /f "skip=12 tokens=*" %%i in ('dir /b /ad /o-n backup*') do ECHO rd /s /q %%i

当输出似乎正常时删除 ECHO

*) 如果您有其他日期格式,最好使用 /o-d(按日期排序,最新的在前)

对于像 YYYY-MM-DD_HHMM 这样命名的备份文件夹,您可以使用 dir /b /ad /o-n ????-??-??_???? 来最大限度地减少任何其他文件夹被计算在内或受到影响的可能性。