首页 > 代码库 > 转:[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

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>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 Settings\Administrator>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 AUTHORITY\SYSTEM" 或
                                   "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:\windows\system32\calc.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 domain\user /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:\windows\system32\freecell
    SCHTASKS /Create /S system /U user /P password /RU runasuser
             /RP runaspassword /SC WEEKLY /TN test1 /TR notepad.exe
    SCHTASKS /Create /S system /U domain\user /P password /SC MINUTE
             /MO 5 /TN test2 /TR c:\windows\system32\notepad.exe
             /ST 18:30:00 /RU runasuser /RP *
    SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN cell
             /TR c:\windows\system32\freecell /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 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\"" ...

//创建任务计划mysqlBAK.job
C:\Documents and Settings\Administrator>schtasks /create /sc daily /tn mysqlBAK
/tr c:\mysqlbak.bat /st 02:00
错误: 无效 starttime 值 (时间格式应该是 hh:mm:ss)。
键入 "SCHTASKS /CREATE /?" 了解用法信息。
 
C:\Documents and Settings\Administrator>schtasks /create /sc daily /tn mysqlBAK
/tr c:\mysqlbak.bat /st 02:00:00
任务将创建于当前登录的用户名("SKY-20121118NSN\Administrator")下。
请输入 SKY-20121118NSN\Administrator 的密码: ***
 
警告: 计划任务 "mysqlBAK" 已经创建,但可能没有运行,因为无法设置帐户信息。
//查看任务计划
C:\Documents and Settings\Administrator>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 Settings\Administrator>attrib +h mysqlBAK.job
找不到文件 - mysqlBAK.job
 
C:\Documents and Settings\Administrator>attrib +h c:\windows\tasks\mysqlBAK.job
 
//取消隐藏job
C:\Documents and Settings\Administrator>attrib -h c:\windows\tasks\mysqlBAK.job
 
C:\Documents and Settings\Administrator>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 Settings\Administrator>at
列表是空的。
C:\Documents and Settings\Administrator>at  \\110.110.110.119 14:00  e:\test.exe
 
How to properly quote file path with SCHTASKS
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批处理添加任务计划