windows系统如何定时执行脚本任务?

2,437 阅读2分钟

如果你写了一些代码 (爬虫,监测等) 想要在特定的时间,或者是有规律的执行。手动操作太过麻烦,那么我们就可以通过设置定时任务帮助我们执行。但是由于Windows系统的特殊性,无法使用Linux系统强大的crontab命令,那我们如何在Windows系统下设置定时任务呢?

通常有两种方式,一种是通过CMD命令行设置,另一种是在图形界面进行设置。需要注意的是,windows系统默认是bat文件,或者叫批处理文件。当然也支持定时执行python脚本,jar包等可执行程序

第一种:CMD命令设置

schtaskswindows系统管理定时任务的命令,可以设置脚本程序定时运行,添加删除任务,停止重启任务,显示更改任务

  • 执行help schtasks命令可以帮助我们查看详细功能

1672922553473.png

如有需要可以输入下图中的指令,查看不同需求下的参数详情

1672922702222.png

在这里,我以创建定时任务为例:

//创建定时任务命令格式
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任务结束时间

干说太过枯燥,我们举一些例子应用帮助我们掌握

  1. 每天8点执行test脚本
schtasks /create /tn test_task /tr D:\test.bat /sc DAILY /st 08:00:00
  1. 8点到12点,每隔2分钟执行脚本
schtasks /create /tn test_task /tr D:\test.bat /sc daily 2 /st 08:00:00 /et 12:00:00
  1. 查看已配置的定时任务
schtasks /query /tn test_task
  1. 结束任务
schtasks /end /tn test_task
  1. 删除任务( "/f" 表示强制删除,不写会有删除提示)
schtasks /delete /tn test_task /f

第二种:图形化界面设置

打开路径:控制面板(可在命令行下输入control打开)-> 系统和安全 -> 管理工具 -> 任务计划程序,打开界面如下:

1672924723137.png

然后就可以在右边框中创建定时任务等等,由于系统提示已经很详细,在这里我就不赘述了,需要的自己尝试一下就可以