Windows计划任务(约等于Linux的crontab)

2020-03-10  本文已影响0人  海生2018

通过Windows的计划任务可以开启执行一些程序等等,相当便利
通过UI交互方式配置已经有很多人写了,但是通过命令行却少有人写,我猜是微软写的文档太长了(狗头)
通过命令行写主要是用于安装程序或者运维脚本等,实现定时或某个重要节点执行,而不用自己编写程序去实现(你知道,有些程序需要获取管理员权限,这对于运维来说是毁灭打击)

1 UI交互方式

贴一个我看到的Blog吧,https://www.cnblogs.com/VweiweiyixiaoV/p/6611380.html

2 命令行CMD方式

微软官方文档
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks
没事,知道你会说太长懒得看,那我就举个栗子
下面的指令不区分大小写

2.1 创建任务

SCHTASKS /CREATE /SC MONTHLY /D 15 /TN "MyTasks\Notepad task" /TR "C:\Windows\System32\notepad.exe" /ST 11:00

/create 就是创建的核心语法,有这个参数才知道是创建
/sc 定义什么时候执行,可选项有 MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT 顾名思义
/d 定义了周几执行,可选项有MON, TUE, WED, THU, FRI, SAT, SUN. 当然如果你使用了之前的MONTHLY 那你就可以定义几号执行了 1 - 31 . 当然,用通配符*也是可以的,代表每一天
/tn 任务名,如果没有MyTasks这个文件夹,计划任务管理器会帮你自动创建(这个文件夹是计划任务的文件夹,具体你使用过UI的就知道)路径最好带双引号,要不然有空格会很蛋疼
/tr 真正的运行地址,需要给一个可运行的路径,例如上面的启动notepad,同样路径要带双引号
/st 定义什么时间去运行,24小时制
/ru 定义用哪个用户去跑,缺省默认的是创建这个任务的用户,如果你想要后台运行,你可以选择system 用户,这样的话就是后台跑程序了
还有一个比较容易忽略的参数(至少我在微软的文档里没有看到),那就是/rl。用来定义运行程序的权限(有些程序没有最高权限是运行不了的),获取最高权限/rl highest

你可能会问,我都用system用户去跑了,为什么不是最高权限?我理解system用户跑任务也可以使用普通权限和最高权限的,并不是system所有操作都带有最高权限,嗯,这个应该是和windows久远的权限系统有关

2.2 查询

schtasks /query

会打印出所有的计划任务,想要停止任务的话,还是要使用taskkill 你的运行程序名

2.3 修改和删除

删除

schtasks /delete /tn "task"

修改

schtasks /change /tn "task" /sc daily

注意修改的时候/tn是不能改的哦

更多用法请参考微软官方文档,写的已经很详细了

上一篇下一篇

猜你喜欢

热点阅读