批处理文件,用于创建启动任务的触发器

时间:2017-04-04 13:45:44

标签: batch-file scheduled-tasks taskscheduler

我使用命令schtasks.exe通过.bat文件创建了两个任务Task1和Task2。

我需要创建一个触发器,在Task1完成时触发Task2的启动。

在批处理文件中何处以及如何为触发器编写命令?

如果我在Windows任务计划程序中手动创建触发器,则以下是我在Task2的“触发器”选项卡中使用的XML。

<QueryList>
  <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[EventData[@Name='TaskSuccessEvent'][Data[@Name='TaskName']='\Task1']]</Select>
  </Query>
</QueryList>

以下是批处理文件的内容:

@echo off
Set RUN_AS_ACCT=%USERDOMAIN%\%USERNAME%

echo The currently logged on user is: %RUN_AS_ACCT%
echo.
set /P INP_RUN_AS_ACCT="Account to run the batch under?(%RUN_AS_ACCT%) "

IF NOT "%INP_RUN_AS_ACCT%"=="" SET RUN_AS_ACCT=%INP_RUN_AS_ACCT%
echo.
echo Using: %RUN_AS_ACCT%
schtasks.exe /CREATE /RU "%RUN_AS_ACCT%" /RP /TN "Task1" /tr "D:\load\Task1.bat"
echo.
schtasks.exe /CREATE /RU "%RUN_AS_ACCT%" /RP /TN "Task2" /tr "D:\load\Task2.bat"
echo.
pause
:EOF

1 个答案:

答案 0 :(得分:2)

您可以创建一个计划来运行以下内容:

cmd /c start /wait task1.exe && start task2.exe

task1.exe关闭后,task2会自动启动。