这是我之前的问题(链接)的后续行动.
为了测试,我制作了这个简单的批处理文件,以确保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
小智 10
您可以将"退出"添加到脚本的最后一行
cd "C:\Users\user\Desktop"
echo. 2>test.txt
exit
Run Code Online (Sandbox Code Playgroud)
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)
现在,批处理文件任务运行并完成后,它不再出现在“所有正在运行的任务”列表中,并且状态返回到“就绪”,而不是停留在“正在运行”。
该命令将杀死所有正在运行的命令处理器实例,因此它可能具有潜在的危害!
| 归档时间: |
|
| 查看次数: |
42104 次 |
| 最近记录: |