【问题标题】:Batch file to create a trigger to start a task用于创建触发器以启动任务的批处理文件
【发布时间】:2017-04-04 13:45:43
【问题描述】:

我使用命令 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

【问题讨论】:

    标签: batch-file scheduled-tasks taskscheduler


    【解决方案1】:

    您可以创建一个时间表来运行以下内容:

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

    task1.exe 关闭时,task2 将自动启动。

    【讨论】:

    • exact: "当task1以errorlevel 0退出时,task 2会自动启动"
    • @Stephan 有趣,我不知道!
    • 我已经在OP中添加了批处理文件内容。 @Bali,Task1 将手动执行。有问题的批处理文件不应启动 Task1。很抱歉之前没有具体说明。
    • @OraAff 没关系,你只需要为我上面放置的代码行运行计划任务,而不是单个任务,除非我没有关注你?
    • @OraAff 好奇怪,你可以试试这个,稍微修改一下cmd /c start /wait cmd /c task1.exe &amp;&amp; start task2.exe
    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多