您的位置:程序门 -> windows专区 -> windows nt/2000/xp/2003



请高手帮忙修改、完善这个能运行、检测、关闭程序的批处理文件!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请高手帮忙修改、完善这个能运行、检测、关闭程序的批处理文件!!![已结贴,结贴人:apegal]
发表于:2007-03-12 22:22:17 楼主
请高手帮忙完善一个批处理文件(或者再编一个程序也行),情况如下:

我是一个很懒的人,但是上网很勤奋。我的电脑在大学校园网内,通过一个客户端软件上网,每次打开客户端(可以保存用户名和密码,可以打开后自动连接)后,都要连接internet或edu,如果连接的是internet,该客户端马上会在ie里打开一个特定的网页(流氓行为,连接edu时不会打开),但我上网用遨游浏览器,所以要关闭ie。然后打开遨游。

每次都按部就班做这些事很烦,请高手帮忙写一个程序一次全部搞定。

不好意思再提一点要求:用上网客户端上网时,如果连接internet成功,在接下来的10秒内每1秒检测ie是否已经打开了,如果是,就强行关闭ie进入下一步。如果没有连接成功,当然就不需要关闭ie了,也不需要打开遨游。如果连接了edu并连接成功了,就打开遨游。

下面是我自己写的一点(随便找点语句凑的,高手不要看不起啊^_^)

@echo   off
title   打开上网客户端
"d:\program   files\宽带上网助手.exe "
title   5秒后ie自动关闭
ping   localhost   -n   5
title   正关闭ie并打开“遨游”
taskkill   /f   /im   iexplore.exe
"d:\program   files\maxthon2\maxthon.exe " "
title   5秒后ie自动关闭
ping   localhost   -n   5
title   正在关闭ie(如果上次关闭没有成功)
taskkill   /f   /im   iexplore.exe

(因为我要程序最小化,故用title而不是echo,不仅仅是作一下注释,还可以看到运行情况)

该批处理文件的几个缺点是:
1、不能检测ie是否已经打开> > > > > > > > > > > 应该:自动检测,如果检测到时ie打开了就马上关闭,再不要检测了。
2、不能检测是否ie是否已经关闭> > > > > > > > > > > > > 应该:如果是,就不要再等了,马上打开遨游。

谢谢了!!!


发表于:2007-03-12 23:29:031楼 得分:100
@echo   off
title   打开上网客户端
"d:\program   files\宽带上网助手.exe "

:start
for   /f   %i   in   ( 'tasklist ')   do   @if   %i   equ   iexplore.exe   (
    title   5秒后ie自动关闭
    ping   localhost   -n   5
    title   正关闭ie并打开“遨游”
    taskkill   /f   /im   iexplore.exe
    set   closeie=yes
    rem   ie已经关闭,不要再等了,马上打开遨游.
    "d:\program   files\maxthon2\maxthon.exe "
)
if   %closeie%==yes   (
    rem   ie已经关闭,再不要检测了.
    goto   end
)   else   (
    rem   继续检测
    goto   start
)

:end
发表于:2007-03-13 08:44:462楼 得分:0
帮顶…………
发表于:2007-03-13 09:51:293楼 得分:0
mark
发表于:2007-03-15 08:28:154楼 得分:0
ljc007说得很好
顶!!!
发表于:2007-03-15 08:52:475楼 得分:0
幫頂.
发表于:2007-03-15 21:03:076楼 得分:0
确实从ljc007学到很多东西,受到启发,写一个实时检测网络连接状况的批处理文件。
先说明一下网络状况:
连接internet时,能收到dns对www.sina.com的解析,能收到www.sina.com的数据包。
连接edu           时,能收到dns对www.sina.com的解析,不能收到www.sina.com的数据包。
无连接时,不能收到dns对www.sina.com的解析,不能收到www.sina.com的数据包。
批处理文件内容如下:
——————————————————————————————————————
:check_link
title   检测网络连接状况
set   check_link=no
for   /f   %%i   in   ( 'ping   www.sina.com   -n   1 ')   do   if   %%i   equ   reply   (
title   已连接到internet
set   check_link=internet
)
if   %check_link%==internet   goto   check_link_end
for   /f   %%i   in   ( 'ping   www.sina.com   -n   1 ')   do   if   %%i   equ   request   (
title   已连接到edu
set   check_link=edu
)
if   %check_link%==edu   goto   check_process_maxthon
if   %check_link%==no   title   无法连接到任何网络
ping   localhost   -n   2
goto   check_link
:check_link_end
............
:check_process_maxthon
—————————————————————————————————————————

问题是:要么占资源,要么延时太大,有没有改进的方法?
还有,它的稳定性如何
发表于:2007-03-15 21:07:167楼 得分:0
上面的功能应该是:
循环检测网络连接状况,直到有连接为止
发表于:2007-06-04 22:12:348楼 得分:0
各位大侠,小弟请教
在win2000系统下,想要通过批处理关闭某个正运行的程序,
我试了这个:   taskkill   /f   /im     qq.exe
可是并没有达到目的,请教我该如何编写才能生效!先谢了


快速检索

最新资讯
热门点击