at命令学习
来源:互联网 发布:音频编辑软件 编辑:程序博客网 时间:2024/05/17 04:20
一、初识"at命令和任务计划的区别"
我们在建立计划任务时,一般可以使用两种方法:控制面板中的任务计划、at命令。那这两种方法是不是完全相同呢,还是有什么区别?再有2000系统中有一个task scheduler服务,那这两种方法与task scheduler服务又是什么关系呢?今天闲来无事,专门研究了一下。
首先在task scheduler服务启动的情况下,分别使用控制面板|任务计划和at命令建立计划任务,让它运行附件中的计算机程序(calc.exe)。建立成功后,可以在控制面板|任务计划中看到两个任务,其中一个名字为at1,也就是at命令建立的任务了。然后在命令行方式下不带参数运行at命令,让它列出所有任务,结果只能看到at1这个任务,而使用控制面板|任务计划建立的任务是看不到的。在控制面板|任务计划中双击at1,发现是可以编辑的,修改了它的运行计划,保存退出。然后再运行at命令,发现任务清单变成空的了。再有一个现象就是使用控制面板|任务计划创建的任务可以看到它成功的运行,而at命令建立的任务的运行却没有看到。难道at命令没有运行成功?利用at命令重新建了一个任务,发现还是没有结果。最后,打开任务管理器,在进程中发现已经有两个calc.exe了。再查帮助,原来at命令建立的任务就是后台运行的。再有,任务是存储在%systemroot%\tasks文件夹中的,默认的扩展名为.job。
然后,停止task scheduler服务。再使用at命令创建任务,发现已经无法创建任务,系统提示服务仍未启动。而使用控制面板|任务计划却可以创建成功,难道它不需要task scheduler服务?到服务中查看一下,却发现task scheduler服务已经启动了。原来控制面板|任务计划是可以自动启动task scheduler服务的。把task scheduler服务启动方式设置为手动,并且停止服务,再使用控制面板|任务计划创建任务,发现仍然可以成功,并且task scheduler服务又一次被启动了。把task scheduler服务设置为禁用并停止后,控制面板|任务计划终于也无法成功了。
经过以上的试验,得出最后的结论:控制面板中的任务计划和at命令都是依赖于task scheduler服务的,不过任务计划可以自动启动task scheduler服务(除非设为禁用),而at命令无法自动启动服务;两种方法建立的任务均可以在控制面板|任务计划中看到并且编辑,都会生成.job文件,但使用at命令却只能看到用命令建立的任务;使用at命令建立的任务一经任务计划的编辑,就无法使用at命令查看和编辑了;任务计划建立的任务的运行是前台的,而at命令建立的任务的运行是后台的。
二、at和schtasks的比较
在windows里添加任务有很多方式,比较常用的是命令at和schtasks而这连个命令的主要区别是什么呢?
at 命令在win7 中是不能将任务在前台执行的,所以很多朋友在win7中用at命令添加了任务,但到执行的时候发现只是打开了一个后台进程,及时加上 /interactive参数也没有效果,而schtasks命令在win7里就可以将任务在前台处理。
相反,如果是XP系统,则用schtasks命令不能在前台处理(自己做的时候是可以的),反而用at命令加上/interactive参数到可以在前台执行,呵呵,挺奇怪的,其他的系统大家试试吧。
--------------------------------------------------------------
OS Name: Microsoft Windows XP Professional
OS Version: 5.1.2600 Service Pack 3 Build 2600
--------------------------------------------------------------
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
FIRST、SECOND、THIRD、FOURTH、LAST
与 /dDay 参数一起使用,并在特定的周和天运行任务。例如,在月份的第三个周三
/st 执行时间点,win7中的格式hh:mm ,xp中的格式为hh:mm:ss
***********************************************************************************************************
另附:taskkill语法
通过进程名称来杀死进程:
taskkill /f /im java.exe
/f 强制杀死
/im 进程名
更多详细语法请执行taskkill /?
- AT命令学习总结
- at命令学习
- AT命令之初步学习
- STM32 AT命令的学习
- AT命令
- AT命令
- AT命令
- AT命令
- AT命令
- at命令
- at命令
- AT命令
- AT命令
- at命令
- AT命令
- AT命令
- AT命令
- AT命令
- ubuntu 11.10 的libc.so.6文件
- cocos2d-x游戏实例(5)-A星算法(1)
- 黑马程序员——SQL注入漏洞攻击
- ArcGIS 10 影像分析工具及ArcGIS Engine的实现
- c#读取txt文件并导入到数据库
- at命令学习
- 测试用例设计之"场景法"法
- CSS3 Media Queries
- myeclipse 安装TFS插件
- Linux 下SVN 常用的命令
- sql语句
- WordPress主循环
- 浅谈C++中内存分配、函数调用和返回值问题
- 查询语句概览