Windows环境下创建定时任务执行Python脚本

一、环境
以下演示使用的环境说明
Windows 操作系统:Win10
Python 环境:Python 3.7.7

二、脚本
准备Python脚本如下:

import sys
import datetime

format_time = datetime.datetime.now()

with open(file="forpy.log",mode="a",encoding="utf-8") as lf:
    lf.write(str(format_time))
    lf.write("\n")
    lf.write(str(sys.argv))
    lf.write("\n")

三、创建定时任务
1、打开【任务计划程序】
打开任务计划程序的方式有很多,这里通过快捷搜索比较方便,在任务栏搜索“任务计划程序”,然后打开

任务计划程序
2、打开【创建任务】窗口
选择一个文件夹,右键点击“创建任务”,打开任务创建窗口。
存放任务计划的文件夹,你也可以自己创建一个

创建任务

 3、创建任务一一常规
任务名称为必填项,其他可以根据实际需要选填

创建任务--常规
4、创建任务一一触发器
在"触发器"tab界面,点击"新建",打开"新建触发器"窗口

 触发器tab页面

 新建触发器

  •  开始任务:

下拉列表中有多种开始任务的策略,选择不同的选项,下方的填写项也会有变化。我这里就选择常用的 “按预定计划”;
设置:如图所示,表示从 2023/6/16 10:00:00 开始,每天执行一次

  • 高级设置:

如图所示,表示 任务每隔5分钟执行一次,任务运行持续时间1天,时间到就停止所有运行的任务

  • 状态:

已启用,如果未勾选,则该触发器不生效。
另外,可以为任务创建多个触发器,多个触发器之间是或关系,即 满足任何一个触发器条件 都会运行任务(不是所有触发器同时满足才运行任务)

5、创建任务一一操作
在"操作"tab界面,点击"新建",打开"新建操作"窗口

操作tab界面

 使用 python 命令 创建操作

新建操作

 使用 python 解释器 的绝对路径 创建操作

新建操作

  • 程序或脚本:

方式1:直接填写 python,前提是 python 解释器 路径已配置到了 Path 环境变量;
方式2:填写 python 解释器的 绝对路径,如我的 python 的路径为D:\Chen\MySoft\Python\Python3.7.7\python.exe

  • 添加参数:

填写脚本路径及脚本需要的参数
1)如果"起始于"项未填写,则脚本路径需要绝对路径;
2)如果"起始于"项填写了,则脚本路径可以填绝对路径,也可以填相对路径(相对于"起始于"给的路径);
3)脚本如果需要参数,在脚本名称后空格,然后跟传参值即可,多个参数值之间也用空格隔开。

  • 起始于:

程序或脚本打开时的工作路径
1)如果未填写,脚本需要给出绝对路径,且脚本代码内如果有使用文件或目录的地方,也需要使用绝对路径,否则会找不到对应文件或目录;
2)如果填写了,脚本可以使用相对路径,且脚本代码内如果有使用文件或目录的地方,也可以使用相对路径;
6、创建任务一一条件
创建任务执行的条件,这里的条件与触发器是且的关系,即 触发器和条件同时满足时才会执行任务

 创建任务一一条件

这里有一点需要注意,如果你的脚本需要联网才能正常运行,需要勾选"只有在以下网络连接可用时才启动",并且选择对应的网络。

7、创建任务一一设置
设置影响任务行为的其他设置

创建任务一一设置
8、完成任务创建
设置完后,最后点击"确认",完成任务创建。

完成创建 任务创建完成后,可以查看任务配置信息,如上图所示。
如果想要修改任务,可以点击右侧的"属性",打开任务编辑窗口进行相关修改。
任务会在设定的时间去执行,在"上次运行结果"可以看到最近一次任务执行的状态,会有对应的状态码及提示信息。

四、验证定时任务
验证定时任务执行的python脚本的情况
根据上边的配置,脚本运行成功后,会生成 D:\Chen\forpy.log 文件

forpy.log 文件内容

由文件内容可以看出,第2个操作脚本未执行成功,原因如【5、创建任务一一操作】解释,未配置 “起始于”,且脚本中写日志的文件使用了相对路径。

我这里将脚本中的文件路径,改为绝对路径,再观察任务执行情况

脚本中文件路径使用绝对路径

脚本中文件使用绝对路径后,再观察任务执行情况,可以看到,两个操作对应的任务都执行成功了。

forpy日志
最后,如果想要停止定时任务,可以将任务"禁用",也可以直接删除任务

 

### 配置Windows定时任务以运行Python脚本 #### 使用Windows任务计划程序创建定时任务 为了在特定时间间隔执行位于`D:\Project\pythonProject1\1.py`的Python脚本,可以利用Windows内置的任务计划程序功能。通过该工具能够设定精确的时间表来触发所需的操作。 当创建一个新的基本任务时,在操作选择里指定启动程序的动作,并指向Python解释器的位置,参数处填入待执行的`.py`文件全路径[^1]。 对于更复杂的调度需求或者希望以批处理方式循环调用Python脚本的情况,则可以通过编写Batch(.bat)文件实现自动化流程控制。例如: ```batch @echo off :C:\path_to_python_executable\python.exe D:\Project\pythonProject1\1.py timeout /t 60 /nobreak goto loop ``` 此段代码将持续每分钟执行一次给定的Python脚本直到手动终止进程。不过需要注意的是这种方式更适合于测试环境而非生产环境中长期稳定的服务部署方案[^2]。 另外一种方法是借助命令行工具`schtasks`来进行一次性或周期性的任务安排。这允许用户无需图形界面就能完成任务定义工作,非常适合远程管理和批量配置场景下的应用。具体指令如下所示用于建立名为“PythonScriptTask”的新任务,它会每隔一分钟重复执行关联到的批处理文件中的命令序列;而要停止或是移除已有的同名条目则分别对应着其他两个子命令选项。 ```bash schtasks /create /sc minute /mo 1 /tn "PythonScriptTask" /tr "C:\full_path_to_your_batch_file.bat" schtasks /end /tn "PythonScriptTask" schtasks /delete /tn "PythonScriptTask" ``` 以上几种途径均可满足不同层次的需求,从简单的日常维护作业直至复杂的企业级后台服务支持都能找到合适的解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕城南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值