文章目录
在Windows中通常用at
和schtasks
命令添加计划任务,其中at
命令默认是以System权限执行。
at命令
at < Windows2012
从Win2012开始不再支持at命令,以下操作在win7中进行
若要使用 at 命令,任务计划程序服务必须正在运行。 使用 at 命令创建任务时,必须配置这些任务,以便它们在同一用户帐户中运行。
at命令语法:
at [\\computername] time [/interactive] [/every:date[,...] | [/next:date[,...]] command
at [\\computername] [[id] [/delete] | /delete [/yes]]
参数含义:
-
\\computername
: 使用此参数指定远程计算机。 如果省略此参数,任务将计划在本地计算机上运行。 -
time
:使用此参数指定任务运行的时间。 时间指定为 小时: 基于 24 小时制的分钟数。 -
/interactive
:使用此参数可允许任务与在任务运行时登录的用户桌面进行交互。 -
/every:date[,...]
:使用此参数将任务安排在每周或每月的指定日期(例如,每周五或每月的第八天)运行。 将 date 指定为一周中的一天或多天 (请使用以下英文缩写形式:Mo、Tu、We、Th、Fr、Sa、Su) 或 (月中的一天或多天使用数字 1 到 31) 。 确保使用逗号分隔多个日期条目。 如果省略此参数,任务将默认在每月的本日运行。 -
/next:date[,...]
:使用此参数将任务安排在当天的下一个事件(例如:下周一运行) 。 将 date 指定为一周中的一天或多天 (请使用以下缩写形式:Mo、Tu、We、Th、Fr、Sa、Su) 或 (月中的一天或多天使用数字 1 到 31) 。 确保使用逗号分隔多个日期条目。 如果省略此参数,任务将默认在每月的本日运行。 -
command
:准备运行的Windows命令(.exe文件)或批处理程序(.bat)。如果命令需要路径作为参数,请使用绝对路径。 如果命令位于远程计算机上,请使用统一命名约定 (UNC) \ ServerName \ ShareName (路径) 。 如果命令不是可执行 (.exe) 文件,则必须在命令的之前使用 cmd /c 。例如: cmd /c copy C:\1.txt C:\temp 。 -
id
:使用此参数指定分配给计划任务的标识号。可省略,自动从1开始。 -
/delete
:使用此参数可以取消计划任务。 如果省略 id 参数,将取消计算机上所有计划的任务。 -
/yes
:在取消计划任务时,使用此参数对系统的所有查询强制提供"是"答案。 如果省略此参数,系统将提示你确认取消任务。
使用 at 命令时,计划任务将使用系统帐户(System)的凭据运行。
使用net start
命令查看当前正在运行服务,如图:计划任务服务已经运行。
如未开启,使用命令net start "task scheduler"
开启服务。
添加计划任务:复制文件操作
at 15:00 cmd /c copy C:\Users\gang\Desktop\1.txt E:\
查看计划任务:at [id]
取消计划任务:
at /delete
schtasks命令
schtasks >= Windows2012
支持win7-win10
基本参数如图所示:
由于SchTasks命令具有比本文更多的选项,因此我们将重点介绍一些常见任务配置。
创建计划任务:/create
1、每天固定时间,以普通权限启动notepad.exe
schtasks /Create /TN TestService1 /SC DAILY /ST 01:02 /TR notepad.exe
创建完成之后会在C:\Windows\System32\Tasks目录下生成TestService1文件
打开可以看到:<RunLevel>LeastPrivilege</RunLevel>
,代表权限为普通用户
2、每天固定时间,以system权限启动notepad.exe
管理员权限:schtasks /Create /TN TestService2 /SC DAILY /ST 01:02 /TR notepad.exe /RL HIGHEST
打开文件可以看到<RunLevel>HighestAvailable</RunLevel>
,代表权限为最高,一般为System权限
3、创建每月1号下午两点执行任务
SchTasks /Create /TN TestService3 /SC MONTHLY /D 1 /TR “C:\1.bat” /ST 14:00
4、创建每周工作日下午两点执行任务
SchTasks /Create /TN TestService4 /SC WEEKLY /D MON,TUE,WED,THU,FRI /TR “C:RunMe.bat” /ST 14:00
一些参数的含义:
/create
指的是创建计划任务/s
指定远程计算机/tn
指定计划任务的名称/ru
指定运行该批处理的账号,如果去掉该参数则默认为当前账户运行,会提示输入密码。(一个计划任务所用的账号如果密码变动后该批处理就不再会运行成功)/rp
指定账号的密码/tr
指定程序所在路径,这里为指定要执行的批处理存放路径。/sc
为指定运行的周期/d
为日期,一周中的一天或多天 (请使用以下缩写形式:Mon、Tue、Wed、Thu、Fri、Sat、Sun) 或 (月中的一天或多天使用数字 1 到 31)/st
为运行时间
查看计划任务:/query
SchTasks /Query /TN TestService1
在win7中运行发生错误:无法加载列资源。
解决方法:chcp
查看cmd编码是否为936中文GBK编码,如果是使用命令chcp 437
将编码改为美国编码即可运行,但无法打印出非ascii码字符。
修改计划任务:/change
SchTasks /Change /TN “TestService1” /ST 14:00
这里需要输入密码。
删除计划任务:/delete
SchTasks /Delete /TN TestService1 [/f]
如图:使用/f参数强制删除,不会进行确认