windows 定时任务

1. Windows 定时计划任务 (参考 )

    * 命令说明

        - /sc 指定计划类型,取值为minute、hourly、daily、weekly、monthly、once、onstart、onlogon、onidle

        - /mo 指定任务在其计划类型内的运行频率

        - /tn 指定任务的名字

        - /tr 指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名

    * 创建任务

        - 开机运行任务    schtasks /create /sc onstart /tn "taskName" /tr c:\test.bat

        - 每十分钟执行一次    schtasks /create /sc minute /mo 10 /tn "RunPerTenMinuts" /tr c:\test.bat

    * 终止任务

        - schtasks /end /tn "taskName"

    * 删除任务

        - schtasks /delete /tn "taskName"

    * 查看当前系统定时任务列表

        - schtasks

2. bat批处理文件

    例子代码,test.bat文件:

    set /a now=%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
    for /f "tokens=1,3* delims=-, " %%i in (C:\test\20110720\test.txt) do set /a result=-%%i+%now%
    echo %result%
    if %result% GTR 2 (java -jar c:\teset\20110720\test.jar)else (echo agent is running)

    * 代码说明

        - C:\test\20110720\test.txt的内容为1107201155,即,2011-07-20 11:55:32去掉年份的前两位和秒数拼接而成;

        - set /a now=....是将=右边的字符串转换为数字;

        - %date,%time分别获取系统的日期和时间;

        - %date:~2,5%表示日期的前两位不要,从第三位开始取,取够5位。如对于2010-07-20,结果为10-07;

        - for循环delims=-, 表示以-或,或空格分隔; %%i in (C:\test\20110720\test.txt)表示从文件读数据到变量i中 ,如果有多个数据,则依次分配各变量j,k,l,m...;

        - if语句

      1、判断驱动器、文件或文件夹是否存在,用 if exist 语句;
  2、判断某两个字符串是否相等,用 if "字符串1"=="字符串2" 语句;
  3、判断某两个数值是否相等,用 if 数值1 equ 数值2 语句;
  4、判断某个变量是否已经被赋值,用 if defined str 语句;

  if语句的完整格式是这样的:if 条件表达式 (语句1) else (语句2),它的含义是:如果条件表达式成立,那么,就执行语句1,否则,将执行语句2。

  对于以上四种情形,可以分别使用如下代码:

  1、if exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)
  2、if "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)
  3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)
  4、if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)

  判断字符串是否相等的时候,if会区分大小写,比如,单纯的if语句会认为字符串abc和字符串Abc不相同,若不想区分大小写,则需要添加 /i 开关,使用 if /i "字符串1"=="字符串2" 的格式;另外,等于符号是连续的"=="而非单独的"="。

  判断两个数值之间的大小关系,除了等于用equ之外,还有其他的关系符号,所有适用于if语句的关系符号见下表:

中文含义    关系符    英文解释

等于        equ    equal
大于        gtr    greater than
大于或等于    geq    greater than or equal
小于        lss    less than
小于或等于    leq    less than or equal
不等于        neq    no equal

  if语句还有一个精简格式:if 条件表达式 语句,它的含义是:如果条件表达式成立,将执行语句,否则,什么也不做。

        - 需要定时执行test.bat文件时,可用schtasks命令

猜你喜欢

转载自zzqrj.iteye.com/blog/1128920