我知道如何通过查询在SQL Server 2008中创建任务,但我无法配置“如果任务失败,每次都重新启动”以及如何禁用“如果运行时间超过”则停止任务。
这是我的代码
declare @cmd varchar(max), @Path varchar(max), @FileToExecute varchar(max)
set @Path = 'C:\MyAppFolder'
set @FileToExecute = 'MyApp.exe'
set @cmd = 'schtasks /create /tn "DataTask" /tr "'''+@Path+'\'+@FileToExecute +'''" /sc onstart /RU Administrator /RP password /F /delay 0015:00'
exec xp_cmdshell @cmd , NO_OUTPUT
set @cmd = 'schtasks /run /TN "DataTask"'
exec xp_cmdshell @cmd
答案 0 :(得分:0)
我不认为可以从命令行完成所有操作。这就是你所能做的一切
https://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs.85).aspx
但是......您可以通过导出和现有作业制作XML文件:
schtasks /create /xml "MyExportFile.xml" /tn "Name of the New Task"
并调整如下设置:
<Settings>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<StartWhenAvailable>true</StartWhenAvailable>
<RestartOnFailure>
<Interval>PT30M</Interval>
<Count>5</Count>
</RestartOnFailure>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
</Settings>
你可以使用它作为模板从命令行导入
答案 1 :(得分:0)
我只是对我的任务进行了更改,然后导出到xml文件,从xml创建一个包含更改的新任务。
这适用于我的
declare @cmd varchar(max), @Path varchar(max), @FileToExecute varchar(max), @XmlFile varchar(100)
set @Path = 'C:\MyAppFolder'
set @FileToExecute = 'MyApp.exe'
set @XmlFile = 'MyApp.xml'
set @cmd = 'schtasks /create /tn "DataTask" /tr "'+@Path+'\'+@XmlFile+'" /RU Administrator /RP password'
exec xp_cmdshell @cmd , NO_OUTPUT
set @cmd = 'schtasks /run /TN "DataTask"'
exec xp_cmdshell @cmd