zoukankan      html  css  js  c++  java
  • 转:[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: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

  • 相关阅读:
    sqlserver读取日志以及复制
    SqlServer 2012 清理日志 截断日志的方法
    android Qzone的App热补丁热修复技术
    热修复技术学习总结
    android免root hook框架legend
    Dalvik虚拟机java方法执行流程和Method结构体分析
    Andfix热修复技术使用
    OKHttp概览
    B-tree B+tree适合文件系统索引和MySQL索引
    B-tree B+tree B*Tree
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/6391967.html
Copyright © 2011-2022 走看看