我有一个任务/脚本,我需要运行不间断 .
但是,我已经设置了任务,并且我一直在尝试运行它 . 它确实运行,但在我刷新任务后,它停止,说“准备好”,并说“任务已完成” .
事情是,我以前能做到这一点,并继续运行 .
我的问题是,如何让Task Scheduler继续运行不间断?任何帮助,将不胜感激 .
任务计划程序无法自动等待执行的每个派生进程/应用程序 . 一旦主句柄“完成”,任务就被认为已完成,即使在后台运行仍有东西,它的状态也会变为就绪状态 .
例:
考虑两个任务,执行以下操作:
Program cmd.exe ,参数: /c pause
cmd.exe
/c pause
Program cmd.exe ,参数: /c "start cmd.exe /c pause"
/c "start cmd.exe /c pause"
在案例1中,taskscheduler将说“正在运行”,直到cmd窗口关闭 . (这是你要求的?)案例2从第一个cmd窗口中调用一个动作 . 因此,即使SECOND cmd窗口保持打开状态,taskscheduler本身创建的进程也会终止 - 因此它会认为执行完成并切换回“就绪” .
所以:确保在完成所有工作之前,由任务调度程序启动的主进程(并且可能调用其他进程)不会结束 .
在上面的例子中,这可能是实现的
/c "start /wait cmd.exe /c pause"
窗口2将“暂停”,窗口1等待窗口2关闭,使该过程处于活动状态 . 因此,任务调度程序一直显示“正在运行” .
要提供一个不那么通用的答案,您应该用更多信息更新您的问题:您正在执行什么任务?它是什么样的剧本?你的任务设置是什么,你的预期行为是什么?
1 回答
任务计划程序无法自动等待执行的每个派生进程/应用程序 . 一旦主句柄“完成”,任务就被认为已完成,即使在后台运行仍有东西,它的状态也会变为就绪状态 .
例:
考虑两个任务,执行以下操作:
Program
cmd.exe
,参数:/c pause
Program
cmd.exe
,参数:/c "start cmd.exe /c pause"
在案例1中,taskscheduler将说“正在运行”,直到cmd窗口关闭 . (这是你要求的?)案例2从第一个cmd窗口中调用一个动作 . 因此,即使SECOND cmd窗口保持打开状态,taskscheduler本身创建的进程也会终止 - 因此它会认为执行完成并切换回“就绪” .
所以:确保在完成所有工作之前,由任务调度程序启动的主进程(并且可能调用其他进程)不会结束 .
在上面的例子中,这可能是实现的
cmd.exe
,参数:/c "start /wait cmd.exe /c pause"
窗口2将“暂停”,窗口1等待窗口2关闭,使该过程处于活动状态 . 因此,任务调度程序一直显示“正在运行” .
要提供一个不那么通用的答案,您应该用更多信息更新您的问题:您正在执行什么任务?它是什么样的剧本?你的任务设置是什么,你的预期行为是什么?