26

这是对我之前的问题(链接)的跟进。

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

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

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

运行任务列表

有没有办法,无论是在批处理文件的末尾还是任务属性中的设置,都可以确保 cmd 进程退出?

谢谢!

4

6 回答 6

45

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

我遇到了同样的问题 - 任务有效,但状态一直显示正在运行。一个简单的尝试是单击左栏中的任务计划程序库。单击操作/刷新。快速。状态更改为就绪。对我来说就是这样,任务运行良好,只是状态没有更新。希望这可以帮助。

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

于 2016-12-04T03:34:47.253 回答
14

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

cd "C:\Users\user\Desktop"
echo. 2>test.txt
exit
于 2015-11-06T08:46:02.250 回答
6

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

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

于 2012-07-26T23:41:58.347 回答
5

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

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

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

>> log.txt ” 这样我就可以看到批处理的输出...

开始于 = " C:\Users[用户名]\whatever "

我还检查了“以最高权限运行”框

之后一切正常:)

于 2016-11-25T11:17:55.493 回答
0

使用以下

exit /B

您可以在 Windows 控制台区域找到更多信息,然后键入:exit/?

于 2019-04-25T09:09:45.037 回答
-2

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

TASKKILL /F /IM cmd.exe

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

警告:

该命令将杀死所有正在运行的命令处理器实例,因此它可能是有害的!

于 2012-07-26T21:35:12.123 回答