使用任务计划程序,如何备份文件夹并删除旧备份
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 ????-??-??_????
来最大限度地减少任何其他文件夹被计算在内或受到影响的可能性。
我目前正在使用任务计划程序每 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 ????-??-??_????
来最大限度地减少任何其他文件夹被计算在内或受到影响的可能性。