如何使用SCHTASKS命令为Windows任务设置多个触发器
如何通过Windows命令行给任务添加多个触发器
Windows自带的schtasks /create命令本身不支持创建任务时直接指定多个触发器,但可以通过两种方式实现多触发器配置:
方法1:先创建基础任务,再逐个追加触发器
先执行你原本的命令创建包含23:00每日触发器的基础任务:
SCHTASKS /CREATE /SC DAILY /ST 23:00 /TN "TaskName" /TR "D:\TaskDir\TaskName.exe taskArgument" /NP
接着分别执行以下命令,为任务添加09:00和16:00的每日触发器:
- 添加09:00触发器:
SCHTASKS /CHANGE /TN "TaskName" /TR "D:\TaskDir\TaskName.exe taskArgument" /SC DAILY /ST 09:00 /NP
- 添加16:00触发器:
SCHTASKS /CHANGE /TN "TaskName" /TR "D:\TaskDir\TaskName.exe taskArgument" /SC DAILY /ST 16:00 /NP
注意:每次执行
/CHANGE时必须重复指定/TR(任务执行路径),否则原有任务命令会被覆盖。
方法2:通过XML模板批量创建多触发器任务
如果不想多次执行命令,可以先编写包含所有触发器的XML配置文件(比如命名为TaskConfig.xml):
<?xml version="1.0" encoding="UTF-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2024-05-20T00:00:00</Date> <Author>YourName</Author> </RegistrationInfo> <Triggers> <!-- 09:00每日触发器 --> <CalendarTrigger> <StartBoundary>2024-05-20T09:00:00</StartBoundary> <Enabled>true</Enabled> <ScheduleByDay> <DaysInterval>1</DaysInterval> </ScheduleByDay> </CalendarTrigger> <!-- 16:00每日触发器 --> <CalendarTrigger> <StartBoundary>2024-05-20T16:00:00</StartBoundary> <Enabled>true</Enabled> <ScheduleByDay> <DaysInterval>1</DaysInterval> </ScheduleByDay> </CalendarTrigger> <!-- 23:00每日触发器 --> <CalendarTrigger> <StartBoundary>2024-05-20T23:00:00</StartBoundary> <Enabled>true</Enabled> <ScheduleByDay> <DaysInterval>1</DaysInterval> </ScheduleByDay> </CalendarTrigger> </Triggers> <Actions Context="Author"> <Exec> <Command>D:\TaskDir\TaskName.exe</Command> <Arguments>taskArgument</Arguments> </Exec> </Actions> <Settings> <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>PT72H</ExecutionTimeLimit> <Priority>7</Priority> </Settings> </Task>
再执行以下命令导入XML文件创建任务:
SCHTASKS /CREATE /TN "TaskName" /XML "TaskConfig.xml" /NP
注意:XML文件必须采用UTF-16编码,否则会导入失败;你可以根据实际需求调整XML中的任务配置参数。
内容的提问来源于stack exchange,提问作者ilker
相关产品推荐
相关产品推荐

