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

And*_*ers 19 batch-file

这是我之前的问题(链接)的后续行动.

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

cd "C:\Users\user\Desktop"
echo. 2>test.txt
Run Code Online (Sandbox Code Playgroud)

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

运行任务列表

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

谢谢!

Rob*_*Rob 26

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

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

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

  • 感谢您的提示!,似乎是在任务完成时状态不会更新的情况,而无需按刷新。 (2认同)
  • @Vincent 它会再次运行。它仅显示“正在运行”状态(任务计划程序窗口中的状态未更新)。您可以打开另一个来验证这一点。另请参阅:https://superuser.com/questions/785511/should-a-scheduled-task-remain-in-the-running-state (2认同)
  • 按 F5 - 刷新状态 (2认同)

小智 10

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

cd "C:\Users\user\Desktop"
echo. 2>test.txt
exit
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 6

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

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


小智 5

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

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

您的附加功能,我的位置=“ / c” C:\ Users [用户名] \ whatever \ your_batchfile.bat“ >> log.txt”

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

开始于=“ C:\ Users [用户名] \任何内容

我还选中了“以最高特权运行”框

之后,一切正常:)


And*_*ers -3

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

TASKKILL /F /IM cmd.exe
Run Code Online (Sandbox Code Playgroud)

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

警告:

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