. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
jerry
 
jerry 的头像
热心会员
 
资 料:
注册日期: Mar 2002
帖子: 2,583 声望值: 3
精华: 0,解答: 2
#1 旧 2010-09-20, 15:43:44 默认 已解答: 【求助】请教一个自动运行程序的批处理的写法
jerry 当前离线  

rt,
写一个自动运行程序的批处理,内容是
运行c:\a.exe
然后ping 192.168.0.1
ping通后打开ie访问www.baidu.com

请达人指点多谢
最佳解答为:pomuyu
@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; 写的很烂,高手见笑……
pomuyu
 
pomuyu 的头像
高级会员
 
资 料:
注册日期: Jul 2010
帖子: 819 声望值: 3
精华: 0,解答: 44
#2 旧 2010-09-20, 20:11:00 默认
pomuyu 当前离线  

@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
流浪猫
 
流浪猫 的头像
超级会员
 
资 料:
注册日期: Sep 2002
帖子: 1,071 声望值: 3
精华: 0
#3 旧 2010-09-21, 12:42:25 默认
流浪猫 当前离线  

我复制下来运行了。第一次设testip是一个可ping通的IP,批处理顺利执行了。第二次设testip是一个我局域网里不存在的一个ip。结果卡一会儿还是会执行到打开www.google.com,这样算不算是正常呢?for的那行我没看懂。因此不敢确定这样的结果是不是正常的。
zeroxia
 
zeroxia 的头像
核心会员
 
资 料:
注册日期: Jun 2009
帖子: 2,831 声望值: 3
精华: 0,解答: 37
#4 旧 2010-09-21, 13:22:04 默认
zeroxia 当前离线  

Windows的ping默认是4次就结束了,可以直接判断返回值:
代码:
ping TESTIP
if errorlevel 1 (
  echo Ping failed
  REM ... ...
) else (
  echo Ping success
  REM ... ...
)


The world is beautiful for Cece.
pomuyu
 
pomuyu 的头像
高级会员
 
资 料:
注册日期: Jul 2010
帖子: 819 声望值: 3
精华: 0,解答: 44
#5 旧 2010-09-21, 17:23:09 默认
pomuyu 当前离线  

引用:
作者: 流浪猫 查看帖子
我复制下来运行了。第一次设testip是一个可ping通的IP,批处理顺利执行了。第二次设testip是一个我局域网里不存在的一个ip。结果卡一会儿还是会执行到打开www.google.com,这样算不算是正常呢?for的那行我没看懂。因此不敢确定这样的结果是不是正常的。
没想明白,感觉是ping通了…… 

能不能试下开一个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)
这样只要有不正常的包就会继续检测。你也可以改后再试下。。
pomuyu
 
pomuyu 的头像
高级会员
 
资 料:
注册日期: Jul 2010
帖子: 819 声望值: 3
精华: 0,解答: 44
#6 旧 2010-09-21, 17:28:48 默认
pomuyu 当前离线  

引用:
作者: zeroxia 查看帖子
Windows的ping默认是4次就结束了,可以直接判断返回值:
代码:
ping TESTIP
if errorlevel 1 (
  echo Ping failed
  REM ... ...
) else (
  echo Ping success
  REM ... ...
)
赞思路! 
不过刚试了一下,有一个小小的问题,貌似只要不是100% loss,errorlevel就是0。
ila
 
ila 的头像
终极会员
 
资 料:
注册日期: Apr 2002
帖子: 10,693 声望值: 7
精华: 1,解答: 12
#7 旧 2010-09-22, 03:42:52 默认
ila 当前离线  

能否推荐些批处理的相关资料学习下?


123
流浪猫
 
流浪猫 的头像
超级会员
 
资 料:
注册日期: Sep 2002
帖子: 1,071 声望值: 3
精华: 0
#8 旧 2010-09-25, 10:51:39 默认
流浪猫 当前离线  

引用:
作者: pomuyu 查看帖子
没想明白,感觉是ping通了…… 

能不能试下开一个cmd窗口运行: ping -t testip
同时运行这个批处理,看看打开google时ping窗口输出有没有变化。

for那行主要是把ping命令返回信息中-
“Packets: Sent = 4, Received = 4, Lost = 0 (0% los......
我试了下,可能问题是出在这里了。ping局域网一个没开机机器的IP和ping一个网络正常机器的IP,lost= 的那一行都是“lost = 0<0%loss>”。只在ping一个网络不好会有丢包的地址时,lost结果会有XX% loss的数值。也就是说ping网络完全正常或完全不通的IP,lost那行结果都会是0% loss。
lms
 
lms 的头像
热心会员
 
资 料:
注册日期: Jun 2010
帖子: 1,818 声望值: 6
精华: 0,解答: 23
#9 旧 2010-09-25, 12:37:15 默认
lms 当前离线  

引用:
作者: ila 查看帖子
能否推荐些批处理的相关资料学习下?
中国DOS联盟还是很不错的
hxxp://www.cn-dos.net/forum/index.php
pomuyu
 
pomuyu 的头像
高级会员
 
资 料:
注册日期: Jul 2010
帖子: 819 声望值: 3
精华: 0,解答: 44
#10 旧 2010-09-26, 12:34:43 默认
pomuyu 当前离线  

引用:
作者: 流浪猫 查看帖子
我试了下,可能问题是出在这里了。ping局域网一个没开机机器的IP和ping一个网络正常机器的IP,lost= 的那一行都是“lost = 0<0%loss>”。只在ping一个网络不好会有丢包的地址时,lost结果会有XX% loss的数值。也就是说ping网络完全正常或完全不通的IP,lost那行结果都......
不知道你是怎么确定“没开机”的,我刚试了一下,台式机Ping笔记本,开机时(0% loss), 合屏幕休眠后(100% loss)。
流浪猫
 
流浪猫 的头像
超级会员
 
资 料:
注册日期: Sep 2002
帖子: 1,071 声望值: 3
精华: 0
#11 旧 2010-09-29, 00:51:05 默认
流浪猫 当前离线  

引用:
作者: pomuyu 查看帖子
不知道你是怎么确定“没开机”的,我刚试了一下,台式机Ping笔记本,开机时(0% loss), 合屏幕休眠后(100% loss)。
我上面所做的试验都是在win7的dos窗口下运行的。今天在vm里的xp再试了,发现ping一个网线不通的IP的操作,win7和xp返回的结果不同。
上传的图像
文件类型: jpg xp.JPG (48.0 KB, 60 次查看)
文件类型: jpg win7.JPG (79.6 KB, 60 次查看)
jerry
 
jerry 的头像
热心会员
 
资 料:
注册日期: Mar 2002
帖子: 2,583 声望值: 3
精华: 0,解答: 2
#12 旧 2010-09-30, 14:22:23 默认
jerry 当前离线  

测试了一下
如果局域网内用访问控制列表隔离的
就是楼上下面那个图的提示
就会导致虽然ping不通但也会打开ie
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 18:06:42.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号