我正在尝试设置一个自动执行的python代码。
我从一个要执行的小代码开始:
import datetime
with open("out.txt","a") as f:
f.write(datetime.datetime.now().isoformat())
任务将启动,并执行(文件被修改),但它永远不会在任务调度程序中结束。
this和this存在于SO中,但没有真实的的答案。在这些线程中提出的唯一解决方案是在Windows中强制任务在给定时间后结束,但这需要知道python脚本将花费多长时间,这不会是我的实际任务的情况。
任务调度器如何知道一个python脚本已经完成?
我在任务调度程序中以如下方式运行它:
- 程序:cmd
- 参数:/c C:\python27\python.exe C:\脚本. py的\路径\
- 执行于:C:\路径\,属于\
我尝试了一些变化,比如用python代替cmd,但是没有什么变化,我希望/c可以强制任务关闭。
4条答案
按热度按时间dphi5xsq1#
正如GauravPundir提到的,添加
sys.exit(0)
应该正确地结束脚本,从而结束任务。2然而,为了使用sys.exit(0)
,你确实需要添加带有import sys
的sys库。3希望这能有所帮助!wlwcrazw2#
它看起来像一个bug给我。尝试查找python控制台下的任务管理器。如果它不在那里,那么该程序已成功退出。
我在Windows 10上遇到了同样的问题,python脚本运行成功,任务管理器下没有python控制台,但计划任务状态仍然显示为“正在运行”
8qgya5xd3#
CMD作为中间启动程序的问题似乎没有正确的解决方案。任务计划程序GUI中有一个[End]命令,单击它将始终终止CMD/批处理文件,将生成的python.exe进程留给稻草。
真实的的问题是:cmd似乎没有任何方法将终止信号传递给python.exe..,taskengine也无法可靠地确定python.exe是否处于活动状态。
mgdq6dx14#
我遇到了同样的问题,python文件在任务调度器中没有停止。我导入了sys并写了sys.exit(0),但我仍然得到了同样的问题。最后,我决定按“更新”,这解决了我的问题;任务的状态是“就绪”,而不是“正在运行”。有关信息,我使用Windows 11。