windows Python脚本永远不会在任务调度程序中结束

icnyk63a  于 2023-01-18  发布在  Windows
关注(0)|答案(4)|浏览(229)

我正在尝试设置一个自动执行的python代码。
我从一个要执行的小代码开始:

import datetime
with open("out.txt","a") as f:
    f.write(datetime.datetime.now().isoformat())

任务将启动,并执行(文件被修改),但它永远不会在任务调度程序中结束。
thisthis存在于SO中,但没有真实的的答案。在这些线程中提出的唯一解决方案是在Windows中强制任务在给定时间后结束,但这需要知道python脚本将花费多长时间,这不会是我的实际任务的情况。
任务调度器如何知道一个python脚本已经完成?
我在任务调度程序中以如下方式运行它:

  • 程序:cmd
  • 参数:/c C:\python27\python.exe C:\脚本. py的\路径\
  • 执行于:C:\路径\,属于\

我尝试了一些变化,比如用python代替cmd,但是没有什么变化,我希望/c可以强制任务关闭。

dphi5xsq

dphi5xsq1#

正如GauravPundir提到的,添加sys.exit(0)应该正确地结束脚本,从而结束任务。2然而,为了使用sys.exit(0),你确实需要添加带有import sys的sys库。3希望这能有所帮助!

wlwcrazw

wlwcrazw2#

它看起来像一个bug给我。尝试查找python控制台下的任务管理器。如果它不在那里,那么该程序已成功退出。
我在Windows 10上遇到了同样的问题,python脚本运行成功,任务管理器下没有python控制台,但计划任务状态仍然显示为“正在运行”

8qgya5xd

8qgya5xd3#

CMD作为中间启动程序的问题似乎没有正确的解决方案。任务计划程序GUI中有一个[End]命令,单击它将始终终止CMD/批处理文件,将生成的python.exe进程留给稻草。
真实的的问题是:cmd似乎没有任何方法将终止信号传递给python.exe..,taskengine也无法可靠地确定python.exe是否处于活动状态。

mgdq6dx1

mgdq6dx14#

我遇到了同样的问题,python文件在任务调度器中没有停止。我导入了sys并写了sys.exit(0),但我仍然得到了同样的问题。最后,我决定按“更新”,这解决了我的问题;任务的状态是“就绪”,而不是“正在运行”。有关信息,我使用Windows 11。

相关问题