如何每两周安排一次批处理脚本文件?
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。
至于检测文件何时被删除,我认为你不能从那里检测,因为它只是在寻找系统事件。
我有一个批处理文件,它在自身内部调用多个批处理文件。我需要这个文件 运行 每两周一次(星期五的 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。
至于检测文件何时被删除,我认为你不能从那里检测,因为它只是在寻找系统事件。