![]() 热心会员
|
rt,
写一个自动运行程序的批处理,内容是 运行c:\a.exe 然后ping 192.168.0.1 ping通后打开ie访问www.baidu.com 请达人指点 ![]() |
||
![]() |
@echo off start c:\a.bat set TestIP=192.168.0.1 set isout="" echo checking... :chkIP for /F "skip=7 tokens=11 delims=(%% " %%s in ('ping %TestIP%') do set isout=%%s if %isout%==100 (goto chkIP) start iexplore www.google.com exit :blush; 写的很烂,高手见笑…… |
![]() 高级会员
|
@echo off start c:\a.bat set TestIP=192.168.0.1 set isout="" echo checking... :chkIP for /F "skip=7 tokens=11 delims=(%% " %%s in ('ping %TestIP%') do set isout=%%s if %isout%==100 (goto chkIP) start iexplore www.google.com exit :blush; 写的很烂,高手见笑…… |
||
![]() 关于笔记本机械硬盘数据恢复的求助帖,请您指点: https://bbs.et8.net/bbs/showthread.php?p=17310314#post17310314 |
![]() 超级会员
|
我复制下来运行了。第一次设testip是一个可ping通的IP,批处理顺利执行了。第二次设testip是一个我局域网里不存在的一个ip。结果卡一会儿还是会执行到打开www.google.com,这样算不算是正常呢?for的那行我没看懂。因此不敢确定这样的结果是不是正常的。
|
||
![]() 核心会员
|
Windows的ping默认是4次就结束了,可以直接判断返回值:
代码:
ping TESTIP if errorlevel 1 ( echo Ping failed REM ... ... ) else ( echo Ping success REM ... ... ) |
||
![]() The world is beautiful for Cece. |
![]() 高级会员
|
引用:
能不能试下开一个cmd窗口运行: ping -t testip 同时运行这个批处理,看看打开google时ping窗口输出有没有变化。 for那行主要是把ping命令返回信息中- “Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),” -这一行最后括号内lost所占的百分比那个数值提取出来。 关于for的具体用法请google,我当时也是用“试凑法”挤出来的:blush; 另外,这个批处理自己用时一般会严格一点,将这一行: if %isout%==100 (goto chkIP) 改成: if not %isout%==0 (goto chkIP) 这样只要有不正常的包就会继续检测。你也可以改后再试下。。 |
|||
![]() 高级会员
|
|
||
![]() 终极会员
|
能否推荐些批处理的相关资料学习下?
|
||
![]() 123 |
![]() 超级会员
|
我试了下,可能问题是出在这里了。ping局域网一个没开机机器的IP和ping一个网络正常机器的IP,lost= 的那一行都是“lost = 0<0%loss>”。只在ping一个网络不好会有丢包的地址时,lost结果会有XX% loss的数值。也就是说ping网络完全正常或完全不通的IP,lost那行结果都会是0% loss。
|
||
![]() 热心会员
|
|
||
![]() 高级会员
|
|
||
![]() 超级会员
|
我上面所做的试验都是在win7的dos窗口下运行的。今天在vm里的xp再试了,发现ping一个网线不通的IP的操作,win7和xp返回的结果不同。
|
||
![]() 热心会员
|
测试了一下
如果局域网内用访问控制列表隔离的 就是楼上下面那个图的提示 就会导致虽然ping不通但也会打开ie |
||