批处理文件完成后,在任务计划程序下运行的批处理文件将继

时间:2012-07-26 20:58:04

标签: batch-file

这是我之前提问的后续行动(link)。

为了测试,我制作了这个简单的批处理文件,以确保Task Scheduler正确执行批处理文件:

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

因此,在桌面上创建test.txt文档后,批处理文件应该结束,但它会继续运行:

Running Tasks List

是否可以在批处理文件的末尾或任务属性中的设置中确保cmd进程退出?

谢谢!

6 个答案:

答案 0 :(得分:22)

我遇到了完全相同的问题。但是,当我读到Trevor778在这篇文章中所写的内容时,我感到被骗了:

我遇到了同样的问题 - 任务有效但状态仍然显示正在运行。一个简单的尝试是点击左栏中的任务计划程序库。单击“操作/刷新”。普雷斯托。状态已更改为“就绪”这就是我的全部,任务运行正常,只是状态没有更新。希望这会有所帮助。

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

答案 1 :(得分:10)

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

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

答案 2 :(得分:4)

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

根据您的上一个问题判断,我猜您仍在使用cmd.exe /k执行任务,这将使该窗口无限期地保持打开状态。对于无人值守的任务,cmd.exe /c是更好的选择。批处理文件完成后,该过程应该结束。

答案 3 :(得分:4)

在Windows 7上也一样。 将所有批处理文件放在用户特定于运行任务的用户路径的目录中

运行programm =" cmd.exe " (没有路径)

你的演员,我的地方=" / c" C:\ Users [username] \ whatever \ your_batchfile.bat" >> log.txt" "

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

从=&#34开始; C:\ Users [username] \ whatever "

我还检查过"以最高权限运行"框

之后一切正常:)

答案 4 :(得分:0)

使用以下内容

exit /B

您可能会在Windows控制台区域中找到更多信息,然后输入:exit/?

答案 5 :(得分:-1)

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

TASKKILL /F /IM cmd.exe

现在,批处理文件任务运行并完成后,它不再处于“所有正在运行的任务”列表中,状态将返回“就绪”而不是保持“正在运行”。

警告:

该命令将终止所有正在运行的命令处理器实例,因此可能有害!