批处理文件完成后,批处理文件在“任务计划程序”下运行,并继续运行

问题描述:

这是我之前问题(link)的一种后续操作。批处理文件完成后,批处理文件在“任务计划程序”下运行,并继续运行

要进行测试我做了这个简单的批处理文件,以确保任务计划程序被正确执行批处理文件:

cd "C:\Users\user\Desktop" 
echo. 2>test.txt 

所以,桌面上创建test.txt文件后,该批处理文件应该结束,但继续运行:

Running Tasks List

有没有一种方法,无论是在批处理文件或在任务的属性设置,年底前确保CMD进程退出?

谢谢!

我找到的解决方案是在批处理文件的最后添加这一行:

现在后
TASKKILL /F /IM cmd.exe 

批处理文件任务运行和完成,它不再是在所有正在运行的任务列表,状态会返回到“准备好”状态,而不是停留在“正在运行”状态。

运行TASKKILL /F /IM cmd.exe将终止所有cmd.exe进程,无论它是否是产生此批处理文件的进程。这可能不是理想的行为。 :-)

从你最后一个问题来看,我猜你还在用cmd.exe /k运行你的任务,这将使窗口保持无限期打开状态。对于无人值守的任务,cmd.exe /c是更好的选择。当批处理文件结束时,该过程应该结束。

+0

谢谢你的投入,我将之纳入未来的批处理文件(如有必要)。我最终编写了一个备份程序来处理所有事情,而不是现有备份批处理文件的包装。 – Anders 2013-02-04 02:04:25

您可以添加“退出”到脚本的最后一行

cd "C:\Users\user\Desktop" 
echo. 2>test.txt 
exit 

同样在这里在Windows 7 把所有批处理文件的目录中谁运行任务的用户的用户特定的路径

运行PROGRAMM = “cmd.exe的”(无路径)

你的演员,矿井,其中=“/C ”C:\用户[用户名] \任何\ your_batchfile.bat“ >> log.txt的“

>> log.txt的 “这样我可以看到该批次的输出...

在开始=” C:\用户[用户名] \任何

我还检查了盒子

“最高privilges运行”所有的事情以后工作得很好:)

我遇到了相同问题。然而,当我读到Trevor778在这篇文章中写到的内容时,我感到非常愚蠢:

我有同样的问题 - 任务工作但状态一直显示正在运行。一个简单的事情就是点击左侧列中的任务计划程序库。点击操作/刷新。普雷斯托。状态更改为就绪。这就是这一切,任务运行良好,只是状态没有更新。希望这可以帮助。

裁判:https://social.technet.microsoft.com/Forums/en-US/2f6dc29c-3b8b-45f5-a2a7-53e076acc062/task-scheduler-scheduler-status-is-being-running-always?forum=winservergen

+0

感谢您的提示!它看起来确实是在任务完成时状态不会更新,而无需按刷新。 – 2017-04-06 08:41:31