at和schtasks的比较

在windows里添加任务有很多方式,比较常用的是命令at和schtasks

 

而这连个命令的主要区别是什么呢?

 

at 命令在win7 中是不能将任务在前台执行的,所以很多朋友在win7中用at命令添加了任务,但到执行的时候发现只是打开了一个后台进程,及时加上 /interactive参数也没有效果,而schtasks命令在win7里就可以将任务在前台处理。

相反,如果是XP系统,则用schtasks命令不能在前台处理,反而用at命令加上/interactive参数到可以在前台执行,呵呵,挺奇怪的,其他的系统大家试试吧。

 

at 语法:

at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,...]] command

\\computername      指定远程计算机。如果省略该参数,命令将安排在本地计算机

time      指定运行命令的时间。将时间以 24 小时标记(00:00 [午夜] 到 23:59)的方式表示为小时:分钟。

/interactive      允许作业与在作业运行时登录用户的桌面进行交互。

/every:date[,...]       在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行命令。将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。

/next:date[,...]        在重复出现下一天(例如,下个星期四)时,运行指定命令将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。

command         指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的 UNC 符号,而不是远程驱动器号。如果命令不是可执行 (.exe) 文件,必须在命令前加上 cmd /c,例如:  cmd /c dir > c:\test.out

 

at [\\computername] [[id] [/delete] | /delete [/yes]]

id  指定指派给已计划命令的识别码。

/delete  取消已计划的命令。如果省略了 id,计算机中已计划的命令将被全部取消。

/yes   当删除已计划的事件时,对系统的查询强制进行肯定的回答。

 

假如要在每天下午6点执行一个批处理文件,如下:
at 18:00 /interactive /every:M,T,W,Th,F,S,Su d:\restart.bat

 

schtasks 语法

schtasks的语法可以通过键入 schtasks /?来查看

创建任务的语法可以通过schtasks /create /?来查看

下面举范例说明:

想添加一个任务,在每天下午6点执行,如下

schtasks /create /tn tomcat /tr e:\restart.bat /sc daily /st 18:00

/tn  任务名称

/tr  命令所在位置

/sc  执行方式,是只执行一次还是每天执行等,可选参数有:

计划类型 修饰符值 描述

MINUTE

1 - 1439

任务每 N 分钟运行一次。

HOURLY

1 - 23

任务每 N 小时运行一次。

DAILY

1 - 365

任务每 N 天运行一次。

WEEKLY

1 - 52

任务每 N 周运行一次。

ONCE

没有修饰符。

任务运行一次。

ONSTART

没有修饰符。

任务在启动时运行。

ONLOGON

没有修饰符。

/u 参数指定的用户登录时,运行任务。

ONIDLE

没有修饰符。

系统闲置 /i 参数(需要与 ONIDLE 一起使用)指定的分钟数之后运行任务。

MONTHLY

1 - 12

任务每 N 月运行一次。

MONTHLY

LASTDAY

任务在月份的最后一天运行。

MONTHLY

FIRSTSECONDTHIRDFOURTHLAST

/dDay 参数一起使用,并在特定的周和天运行任务。例如,在月份的第三个周三

/st  执行时间点,win7中的格式hh:mm ,xp中的格式为hh:mm:ss

 

另附:taskkill语法

通过进程名称来杀死进程:

taskkill /f /im java.exe

/f  强制杀死

/im  进程名

更多详细语法请执行taskkill /?

 

在一个批处理中执行两个批处理的格式

start /d "d:\dir1"  a.bat
start /d "d:\dir2"  b.bat

 

 

 

你可能感兴趣的:(windows,Date,cmd,command,任务,作业)