明凯博客

关注网站技术,一个特立独行的程序员

Windows中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命令建立的任务的运行是后台的。

, ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注