首页 > 代码库 > 转:[windows]DOS批处理添加任务计划
转:[windows]DOS批处理添加任务计划
自动创建每周运行一次的计划任务
创建计划任务可用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:\aizzw\del-7.bat /sc weekly /d mon /st 01:00
start %systemroot%\tasks
echo 创建成功,请检查...
pause
del /f Create.bat
参数解释:
schtasks /create 指的是创建计划任务
/tn 指定计划任务的名称
/ru 指定运行该批处理的账号,如果去掉该参数则默认为当前账户运行,会提示输入密码。
一个计划任务所用的账号如果密码变动后该批处理就不再会运行成功
所以我这里使用系统账号system,密码就省略不写。
/rp 指定账号的密码
/tr 指定程序所在路径,这里为指定要执行的批处理存放路径。
/sc 为指定运行的周期
/d 为日期.这里mon为英文单词缩写,周一
/st 为运行时间
start %systemroot%\tasks 这一句只是为了弹出计划任务窗口查看创建成功与否
del /f Create.bat 为创建完成后自动删除创建该计划任务的批处理
schtasks命令详细解释可以参见微软的
cmd 创建任务计划 schtasks ,at ,attrib
schtasks / at /attrib
示例: 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 domain\user /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:\windows\system32\freecell
==> 在远程机器 "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 domain\user /P password /SC MINUTE
/MO 5 /TN logtracker
/TR c:\windows\system32\notepad.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 files\internet explorer\iexplorer.exe‘
\"c:\log data\today.xml\"" ...
SCHTASKS /CREATE /TN "TASK1" /TR "\"C:\Program_Files\Spybot - Search ^& Destroy\SpybotSD.exe\" \AUTOCHECK \AUTOFIX \AUTOCLOSE" /ST 01:00:00 /SC Daily /RU MyUser /RP MyPass
set taskrun="%ProgramFiles(x86)%\foo\bar.exe" schtasks /create /TN FooBar /TR \"%taskrun%\" /SC ONLOGON /RL HIGHEST /F
登录启动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
转:[windows]DOS批处理添加任务计划