如何每两周安排一次批处理脚本文件?

How to schedule a batch script file biweekly?

我有一个批处理文件,它在自身内部调用多个批处理文件。我需要这个文件 运行 每两周一次(星期五的 10 A.M),当文件放在特定路径中时。

我检查了 Windows 任务计划程序,但它没有双周选项。我想我们可以使用触发选项(当文件落入路径时触发)来启动这个批处理文件,但不确定如何去做。

我想到的 /MO 开关:

SCHTASKS /Create /SC weekly /D FRI /MO 2 /TN THE_TASK_TM /ST 10:00 /TR c:\some.bat 

用它和 /sc weekly 你可以指出你想要的周数。 可能有更简单的方法,但我需要考虑一下。

编辑 - 我错了。/MO 它的间隔所以你可以把它留给 2 - https://technet.microsoft.com/en-us/library/cc725744.aspx 搜索 "every other week" 以找到正确的示例。

其他方法是在控制面板中使用计划任务 UI 或将 XML 传递给类似于此的 schtasks(编辑您需要的东西):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2015-04-24T18:41:41.2112185</Date>
    <Author>computer\user</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2015-04-24T18:40:56.2090861</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Friday/>
        </DaysOfWeek>
        <WeeksInterval>2</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>computer\user</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <Duration>PT10M</Duration>
      <WaitTimeout>PT1H</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>the_bat.bat</Command>
      <Arguments>x</Arguments>
      <WorkingDirectory>c:\</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

在任务计划程序中,如果将计划设置为每周,则可以将 "Recur every:" 设置为 2。仅勾选星期五框,并将开始时间设置为 10:00:00。

至于检测文件何时被删除,我认为你不能从那里检测,因为它只是在寻找系统事件。