为备份目的实现旋转路径?

时间:2012-04-12 14:41:57

标签: windows command-line batch-file

我想每天运行一次图像备份(在Windows上使用命令行)。我想在过去三天的每一天保留一张图片,因此我必须在每次备份运行中在3条路径之间轮换,例如

c:\image0.ext // encode as 0, see text below
c:\image1.ext // encode as 1
c:\image2.ext // encode as 2

我想在文本文件中写0,1或2,以某种方式读取它的值,然后做某事。喜欢(数字+ 1)mod 2,执行备份,将新数字写入文本文件。然后,我将使用if语句将每个从0到2的数字链接到路径。是否有更好/更简单的方法?谢谢你的提示!

1 个答案:

答案 0 :(得分:1)

由于imageX.ext是一个文件,我假设它是一个与zip文件类似的压缩存档文件。修改后的日期应在每次更换新版本时更新,因此您不需要单独的文件来跟踪最近的图像。您可以使用按日期排序的DIR来获取最新图像(列出最后一张图像)。

@echo off
for /f "delims=" %%F in ('dir /b /od c:\image?.ext') do set lastImage=%%F
set /a nextImage=(%lastimage:~-5,1%+1)%%3
set nextImage="c:\image%nextImage%.ext"

如果有人在拍摄完最后一张照片后创建了与您的文件掩码相匹配的其他文件,此算法将会中断。