2017-04-04 56 views
1

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

回答

2

您可以创建一个时间表,运行以下命令:

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

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

+0

要[确切](https://ss64.com/nt/syntax-redirection.html):“当task1退出错误级别0,任务2将自动启动” – Stephan

+1

@Stephan有趣的是,我不知道那! –

+0

我已经在OP中添加了批处理文件内容。 @Bali,Task1将被手动执行。有问题的批处理文件不应该启动Task1。对不起,没有具体提前。 –

相关问题