自动创建每周运行一次的计划任务
创建计划任务可用at,schtasks命令,schtasks提供了很多参数
命令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] ]
[/SD startdate] [/ED enddate] [/IT] [/Z] [/F]
方法:
@echo off
schtasks /create /tn "Del-7_log" /ru system /tr D:aizzwdel-7.bat /sc weekly /d mon /st 01:00
start %systemroot% asks
echo 创建成功,请检查...
pause
del /f Create.bat
参数解释:
schtasks /create 指的是创建计划任务
/tn 指定计划任务的名称
/ru 指定运行该批处理的账号,如果去掉该参数则默认为当前账户运行,会提示输入密码。
一个计划任务所用的账号如果密码变动后该批处理就不再会运行成功
所以我这里使用系统账号system,密码就省略不写。
/rp 指定账号的密码
/tr 指定程序所在路径,这里为指定要执行的批处理存放路径。
/sc 为指定运行的周期
/d 为日期.这里mon为英文单词缩写,周一
/st 为运行时间
start %systemroot% asks 这一句只是为了弹出计划任务窗口查看创建成功与否
del /f Create.bat 为创建完成后自动删除创建该计划任务的批处理
schtasks命令详细解释可以参见微软的
cmd 创建任务计划 schtasks ,at ,attrib
schtasks / at /attrib
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:Documents and SettingsAdministrator>schtasks /?
SCHTASKS /parameter [arguments]
描述:
允许管理员创建、删除、查询、更改、运行和中止
本地或远程系统上的计划系统。替代 AT.exe。
参数列表:
/Create 创建新计划任务。
/Delete 删除计划任务。
/Query 显示所有计划任务。
/Change 更改计划任务属性。
/Run 立即运行计划任务。
/End 中止当前正在运行的计划任务。
/? 显示帮助/用法。
示例:
SCHTASKS
SCHTASKS /?
SCHTASKS /Run /?
SCHTASKS /End /?
SCHTASKS /Create /?
SCHTASKS /Delete /?
SCHTASKS /Query /?
SCHTASKS /Change /?
C:Documents and SettingsAdministrator>schtasks /create /?
SCHTASKS /Create [/S system [/U username [/P password]]]
[/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
[/I idletime] /TN taskname /TR taskrun [/ST starttime] [/M months]
[/SD startdate] [/ED enddate]
描述:
启用管理员以在本地或远程系统上
创建计划任务。
参数列表:
/S system 指定要连接到的远程
系统。如果省略这个
系统参数,默认是本地
系统。
/U username 指定命令执行的
用户上下文。
/P password 指定给定用户上下文
的密码。
/RU username 指定任务运行的用户
帐户 (用户上下文)。
对于系统帐户,有效值是 "",
"NT AUTHORITYSYSTEM" 或
"SYSTEM"。
/RP password 指定用户密码。
要提示输入密码,值
必须是 "*" 或没有。
密码将不会对系统帐户
起作用。
/SC schedule 指定计划频率。
有效计划任务: MINUTE, HOURLY,
DAILY, WEEKLY, MONTHLY, ONCE,
ONSTART, ONLOGON, ONIDLE。
/MO modifier 改进计划类型以允许
更好地控制计划重复
周期。有效值列于
下面"Modifiers" 部分中。
/D days 指定该周内运行任务的
日期。有效值: MON, TUE,
WED, THU, FRI, SAT, SUN
和对 MONTHLY 计划的 1 - 31
(某月中的日期)。
/M months 指定一年内的某月。
默认是该月的第一天。
有效值: JAN, FEB, MAR,
APR, MAY, JUN, JUL, AUG, SEP, OCT,
NOV, DEC。
/I idletime 指定运行一个已计划的
ONIDLE 任务之前要等待
的空闲时间。
有效值范围: 1 到 999 分钟。
/TN taskname 指定唯一识别这个计划
任务的名称。
/TR taskrun 指定这个计划的任务
运行的程序的路径和
文件名。
示例: C:windowssystem32calc.exe
/ST starttime 指定运行这个任务的时间。
时间格式是 HH:MM:SS (24
小时时间) 例如,14:30:00
是下午 2:30 PM。
/SD startdate 指定第一次运行这个
任务的日期。格式为
"yyyy/mm/dd"。
/ED enddate 指定上次运行这个
任务的日期。格式为
"yyyy/mm/dd"。
/? 显示帮助/用法。
修改者: 按计划类型的 /MO 开关的有效值:
MINUTE: 1 到 1439 分钟。
HOURLY: 1 到 23 小时。
DAILY: 1 到 365 天。
WEEKLY: 1 到 52 周。
ONCE: 无修改者。
ONSTART: 无修改者。
ONLOGON: 无修改者。
ONIDLE: 无修改者。
MONTHLY: 1 到 12,或
FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY。
示例:
SCHTASKS /Create /S system /U user /P password /RU runasuser
/RP runaspassword /SC HOURLY /TN rtest1 /TR notepad
SCHTASKS /Create /S system /U domainuser /P password /SC MINUTE
/MO 5 /TN rtest2 /TR calc.exe /ST 12:00:00
/SD 2001/12/30 /ED 2001/12/30 /RU runasuser /RP
SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN game
/TR c:windowssystem32freecell
SCHTASKS /Create /S system /U user /P password /RU runasuser
/RP runaspassword /SC WEEKLY /TN test1 /TR notepad.exe
SCHTASKS /Create /S system /U domainuser /P password /SC MINUTE
/MO 5 /TN test2 /TR c:windowssystem32
otepad.exe
/ST 18:30:00 /RU runasuser /RP *
SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN cell
/TR c:windowssystem32freecell /RU runasuser
示例: http://hi.baidu.com/__lyc/item/30505d902c348a4ef1421591
==> 在远程机器 "ABC" 上创建计划任务 "doc",
该机器每小时在 "runasuser" 用户下运行 notepad.exe。
SCHTASKS /Create /S ABC /U user /P password /RU runasuser
/RP runaspassword /SC HOURLY /TN doc /TR notepad
==> 在远程机器 "ABC" 上创建计划任务 "accountant",
在指定的开始日期和结束日期之间的开始时间和结束时间内,
每隔五分钟运行 calc.exe。
SCHTASKS /Create /S ABC /U domainuser /P password /SC MINUTE
/MO 5 /TN accountant /TR calc.exe /ST 12:00 /ET 14:00
/SD 06/06/2006 /ED 06/06/2006 /RU runasuser /RP userpassword
==> 创建计划任务 "gametime",在每月的第一个星期天
运行“空当接龙”。
SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN gametime
/TR c:windowssystem32freecell
==> 在远程机器 "ABC" 创建计划任务 "report",
每个星期运行 notepad.exe。
SCHTASKS /Create /S ABC /U user /P password /RU runasuser
/RP runaspassword /SC WEEKLY /TN report /TR notepad.exe
==> 在远程机器 "ABC" 创建计划任务 "logtracker",
每隔五分钟从指定的开始时间到无结束时间,
运行 notepad.exe。将提示输入 /RP
密码。
SCHTASKS /Create /S ABC /U domainuser /P password /SC MINUTE
/MO 5 /TN logtracker
/TR c:windowssystem32
otepad.exe /ST 18:30
/RU runasuser /RP
==> 创建计划任务 "gaming",每天从 12:00 点开始到
14:00 点自动结束,运行 freecell.exe。
SCHTASKS /Create /SC DAILY /TN gaming /TR c:freecell /ST 12:00
/ET 14:00 /K
==> 创建计划任务“EventLog”以开始运行 wevtvwr.msc
只要在“系统”通道中发布事件 101
SCHTASKS /Create /TN EventLog /TR wevtvwr.msc /SC ONEVENT
/EC System /MO *[System/EventID=101]
==> 文件路径中可以加入空格,但需要加上两组引号,
一组引号用于 CMD.EXE,另一组用于 SchTasks.exe。用于 CMD
的外部引号必须是一对双引号;内部引号可以是一对单引号或
一对转义双引号:
SCHTASKS /Create
/tr "'c:program filesinternet exploreriexplorer.exe'
"c:log data oday.xml"" ...
//创建任务计划mysqlBAK.job
C:Documents and SettingsAdministrator>schtasks /create /sc daily /tn mysqlBAK
/tr c:mysqlbak.bat /st 02:00
错误: 无效 starttime 值 (时间格式应该是 hh:mm:ss)。
键入 "SCHTASKS /CREATE /?" 了解用法信息。
C:Documents and SettingsAdministrator>schtasks /create /sc daily /tn mysqlBAK
/tr c:mysqlbak.bat /st 02:00:00
任务将创建于当前登录的用户名("SKY-20121118NSNAdministrator")下。
请输入 SKY-20121118NSNAdministrator 的密码: ***
警告: 计划任务 "mysqlBAK" 已经创建,但可能没有运行,因为无法设置帐户信息。
//查看任务计划
C:Documents and SettingsAdministrator>schtasks
任务名 下次运行时间 状态
==================================== ======================== ===============
mysqlBAK 02:00:00, 2013-1-9
SogouImeMgr 系统启动时 正在运行
C:Documents and Settings Administrator >attrib /?
显示或更改文件属性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [
/D]]
+ 设置属性。
- 清除属性。
R 只读文件属性。
A 存档文件属性。
S 系统文件属性。
H 隐藏文件属性。
[drive:][path][filename]
指定要处理的文件属性。
/S 处理当前文件夹及其子文件夹中的匹配文件。
/D 也处理文件夹。
//隐藏job
C:Documents and SettingsAdministrator>attrib +h mysqlBAK.job
找不到文件 - mysqlBAK.job
C:Documents and SettingsAdministrator>attrib +h c:windows asksmysqlBAK.job
//取消隐藏job
C:Documents and SettingsAdministrator>attrib -h c:windows asksmysqlBAK.job
C:Documents and SettingsAdministrator>at /?
AT 命令安排在特定日期和时间运行命令和程序。
要使用 AT 命令,计划服务必须已在运行中。
AT [\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"
\computername 指定远程计算机。 如果省略这个参数,
会计划在本地计算机上运行命令。
id 指定给已计划命令的识别号。
/delete 删除某个已计划的命令。如果省略 id,
计算机上所有已计划的命令都会被删除。
/yes 不需要进一步确认时,跟删除所有作业
的命令一起使用。
time 指定运行命令的时间。
/interactive 允许作业在运行时,与当时登录的用户
桌面进行交互。
/every:date[,...] 每个月或每个星期在指定的日期运行命
令。如果省略日期,则默认为在每月的
本日运行。
/next:date[,...] 指定在下一个指定日期(如,下周四)运
行命令。如果省略日期,则默认为在每
月的本日运行。
"command" 准备运行的 Windows NT 命令或批处理
程序。
示例:
C:Documents and SettingsAdministrator>at
列表是空的。
C:Documents and SettingsAdministrator>at \110.110.110.119 14:00 e: est.exe
How to properly quote file path with SCHTASKS
SCHTASKS /CREATE /TN "TASK1" /TR ""C:Program_FilesSpybot - Search ^& DestroySpybotSD.exe" AUTOCHECK AUTOFIX AUTOCLOSE" /ST 01:00:00 /SC Daily /RU MyUser /RP MyPass
set taskrun="%ProgramFiles(x86)%fooar.exe"
schtasks /create /TN FooBar /TR "%taskrun%" /SC ONLOGON /RL HIGHEST /F
//http://www.cnblogs.com/dongzhiquan/p/3231498.html
设置定时任务
@echo off
set NAME=dailybackup
set TIME=20:01:00
set DAY=MON,TUE,WED,THU,FRI,SAT,SUN
set COMMAND=cscript.exe %~dp0dailybak.vbs
%SystemDrive%
cd %windir% asks
if exist %NAME%.job del %NAME%.job
schtasks /create /tn %NAME% /tr "%COMMAND%" /sc weekly /d %DAY% /st %TIME% /ru system
//demo: schtasks /create /sc minute /mo 30 /tn "finaltest" /tr ""d:program filesmth.bat"" "'20' '302'"
登录启动winform程序
@echo off
set current_path=%~dp0
set NAME=printTask
set COMMAND=%current_path%PrintService.exe
schtasks /create /tn %NAME% /tr ""%COMMAND%"" /SC ONLOGON /delay 0000:03 /RL HIGHEST
schtasks /run /tn %NAME%
echo. & pause
原文:
http://gwmold.blog.163.com/blog/static/1553319892010117113457232/
http://wl3033619.blog.163.com/blog/static/2708106820130882729740/
http://stackoverflow.com/questions/5837761/how-to-properly-quote-file-path-with-schtasks
http://www.cnblogs.com/shy1766IT/p/5059523.html