批处理文件,用于创建每三周星期一运行的 3 个计划任务



正如我试图在标题中解释的那样;我有一个批处理文件,它创建了 3 个进行备份的计划任务。它通过导入导出的预制任务来创建它们。我希望批处理文件创建它们,以便第一个任务运行 1。下周一。例如:第一个任务在 2013 年 11 月 4 日运行。第二个任务在一周后的 11 月 11 日运行,第三个任务在 11 月 18 日之后再运行一周。然后下周周期"重新启动"。

我知道如何将日期插入到预制任务中,但我找不到如何获得我想要的 3 个日期。

这对于批处理文件来说可能很多,但如果有人有一些想法,将不胜感激。

编辑:使用窗口 7

任务计划程序具有"每月"的概念。如果您手动创建任务,则可以选择类似以下内容。当我这样做(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。

编辑

这是每三周在星期一运行的触发器代码。这将是一项重复性任务。您只需要更改每个日期的开始边界日期。

<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_serverbackupshostname*.zip') DO SET BACKUP_DEST=%%b

这样做的一个优点是调度将大大简化。只需每周运行一次。您必须预先创建三个"空"备份(或使用已有的三个备份)。

最新更新