![使用批处理文件操作停止计划任务不会停止批处理文件中正在运行的程序](https://linux22.com/image/1487134/%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%81%9C%E6%AD%A2%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1%E4%B8%8D%E4%BC%9A%E5%81%9C%E6%AD%A2%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E4%B8%AD%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E7%A8%8B%E5%BA%8F.png)
我有几个计划任务,每个任务都执行一个(不同的)批处理文件。每个批处理文件都调用同一个程序,并使用单独的命令行参数。如果我在任务运行时停止它,批处理文件中的程序仍会运行。(批处理文件是一行程序,仅执行程序。)
当我停止调用批处理文件的任务时,如何强制从批处理文件启动的程序强制退出?
作为一种解决方法,我在正在运行的进程中查找任务,然后根据进程 ID 将其终止。我想要一个更干净的解决方案,该解决方案由任务计划程序管理。
答案1
无法停止从任务计划程序的批处理文件调用的程序。
任务调度程序只知道它启动的批处理文件。因此,它只能与正在运行的进程交互,而不能与可能由此产生的任何其他进程交互。
最好的办法是放弃批处理文件,直接在计划任务中运行可执行文件。这样,它就会知道 EXE 作为进程位于何处,并能够停止它。