如果你写了一些代码 (爬虫,监测等) 想要在特定的时间,或者是有规律的执行。手动操作太过麻烦,那么我们就可以通过设置定时任务帮助我们执行。但是由于Windows系统的特殊性,无法使用Linux系统强大的crontab命令,那我们如何在Windows系统下设置定时任务呢?
通常有两种方式,一种是通过CMD命令行设置,另一种是在图形界面进行设置。需要注意的是,windows系统默认是bat文件,或者叫批处理文件。当然也支持定时执行python脚本,jar包等可执行程序
第一种:CMD命令设置
schtasks是windows系统管理定时任务的命令,可以设置脚本程序定时运行,添加删除任务,停止重启任务,显示更改任务
- 执行
help schtasks命令可以帮助我们查看详细功能
如有需要可以输入下图中的指令,查看不同需求下的参数详情
在这里,我以创建定时任务为例:
//创建定时任务命令格式
SCHTASKS /Create [/S system [/U username [/P [password]]]]
[/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
[/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
[/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F] [/HRESULT]
可以看到,系统提供了非常多的参数位可供我们进行设置,下面我简单列一些比较常用的参数:
| 参数 | 含义 |
|---|---|
| /S | 要连接的远程系统,默认为本地系统 |
| /SC | 任务执行的频率 (minute/hourly/daily..) |
| /MO | 细化调度频率,允许自定义时间 |
| /D | 执行任务在哪一天(或者是星期几, "*"指每一天) |
| /M | 执行任务在哪一月("*"指所有月份) |
| /TN | 任务名称,唯一标识任务 |
| /TR | 任务的路径以及文件名 例:C:\windows\system32\calc.exe |
| /ST | 任务开始时间 |
| /ET | 任务结束时间 |
干说太过枯燥,我们举一些例子应用帮助我们掌握
- 每天8点执行test脚本
schtasks /create /tn test_task /tr D:\test.bat /sc DAILY /st 08:00:00
- 8点到12点,每隔2分钟执行脚本
schtasks /create /tn test_task /tr D:\test.bat /sc daily 2 /st 08:00:00 /et 12:00:00
- 查看已配置的定时任务
schtasks /query /tn test_task
- 结束任务
schtasks /end /tn test_task
- 删除任务( "/f" 表示强制删除,不写会有删除提示)
schtasks /delete /tn test_task /f
第二种:图形化界面设置
打开路径:控制面板(可在命令行下输入control打开)-> 系统和安全 -> 管理工具 -> 任务计划程序,打开界面如下:
然后就可以在右边框中创建定时任务等等,由于系统提示已经很详细,在这里我就不赘述了,需要的自己尝试一下就可以