赵小黑 发表于 2017-6-29 10:12:13

转:[windows]DOS批处理添加任务计划

  自动创建每周运行一次的计划任务
  创建计划任务可用at,schtasks命令,schtasks提供了很多参数
  命令schtasks
  SCHTASKS /Create ]]]
  ] /SC schedule
   /TN taskname /TR taskrun
   [ {/ET endtime | /DU duration} ]
  
  方法:



@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



描述:

    允许管理员创建、删除、查询、更改、运行和中止

    本地或远程系统上的计划系统。替代 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 ]]

    ] /SC schedule

    /TN taskname /TR taskrun

   



描述:

    启用管理员以在本地或远程系统上

    创建计划任务。



参数列表:

    /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 *
    ==> 文件路径中可以加入空格,但需要加上两组引号,
      一组引号用于 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] [ filename] [/S [

/D]]



+   设置属性。

-    清除属性。

R   只读文件属性。

A   存档文件属性。

S   系统文件属性。

H   隐藏文件属性。



      指定要处理的文件属性。

/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] [ | /DELETE ]

AT [\\computername] time

    [ /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:00e:\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



//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%\tasks\
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 file\smth.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
页: [1]
查看完整版本: 转:[windows]DOS批处理添加任务计划