任务调度程序有一个“每月的<n>th <day_of_week>”的概念。如果您手动创建任务,则可以选择类似的内容。当我完成它(11 月的第一个星期一)并将任务导出到 XML 时,这是我看到的触发器。
<Triggers>
<CalendarTrigger>
<StartBoundary>2013-10-29T07:32:13.0631789</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByMonthDayOfWeek>
<Weeks>
<Week>1</Week>
</Weeks>
<DaysOfWeek>
<Monday />
</DaysOfWeek>
<Months>
<November />
</Months>
</ScheduleByMonthDayOfWeek>
</CalendarTrigger>
</Triggers>
您应该能够通过在您正在导入的 XML 中使用类似的东西来实现您需要的效果,<Week>1</Week>
将其他任务更改为 2 和 3。
编辑
这是在星期一每三周运行一次的触发代码。这将是一项经常性的任务。您只需要更改每个的 StartBoundary 日期。
<Triggers>
<CalendarTrigger>
<StartBoundary>2013-11-01T09:24:37.1425194</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
</DaysOfWeek>
<WeeksInterval>3</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
</Triggers>
如果“备份”由单个文件或目录组成,另一种选择是让备份脚本确定哪个备份是最旧的,重命名它,进行备份,然后在完成后删除旧备份。
此命令将获取最旧(最后一次写入时间)匹配的文件/目录并将其保存在环境变量BACKUP_DEST
中。您可以在备份命令中使用它。
FOR /F %%b IN ('dir /o-d /tw /b \\backup_server\backups\hostname\*.zip') DO SET BACKUP_DEST=%%b
这样做的一个优点是调度将大大简化。每周运行一次。您必须预先创建三个“空”备份(或使用您已有的三个)。