2008年9月3日星期三

巧用批处理控制自启动程序顺序

原创文章,将发表于近期《电脑报》。

为了提高工作效率,或者为了实现某种目的,我们经常需要将一些程序加入到windows的“启动”组中,也就是让这些程序随系统启动而自动运行。有时,我们希望这些自启动程序能按一定的先后顺序运行,对于服务器而言,可能有其中一个程序要依赖另一程序才能运行,因而还需要在这二个程序启动时有一定的时间延迟。

我发现,可以巧妙利用DOS下的批处理命令,来轻松控制自启动程序的运行先后顺利,以及程序的延迟运行。举例说明,假如有三个自启动程序,要求在windows启动时先运行C:\Patha\A.exe,等其执行完毕了再运行C:\Pathb\B.exe,至少延迟10秒后再运行C:\Pathc\C.exe,实现方法如下:

打开“记事本”,输入以下代码:

Start/w C:\Patha\A.exe

Start C:\Patha\B.exe

Ping 127.0.0.1 –n 10 >nul

Start C:\Patha\C.exe

将此文件保存为一个bat文件,例如qidong.bat。双击运行这个批处理文件,就可即刻验证各程序的启动顺序和延迟运行情况。最后将此文件拖入windows的“启动”组就OK了。当然,三个自启动文件是靠批处理文件来调用的,所以就不必放入“启动”组了。

对于上述批处理命令,作一下简单的介绍:

Start命令用于启动指定程序,其格式是:“start/参数 程序的完整路径和文件名”,参数/w的作用是等待当前的程序执行完毕再执行下一个程序。注意:由于批处理是在DOS下运行,类似“C:\ \Program files”这样带空格的文件夹名称,应该换成“C:\Progra~1”,即取前6个字符再加上“~1”。

因为批处理中没有延时的命令,所以用ping一个本地IP地址来间接实现延时,ping一次大概花费1秒钟,虽然时间不是很精确,但可修改-n后面的数字进行调试,使时间尽量接近,>nul的作用相当于是让ping命令在后台运行。

没有评论: