中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [讨论]ping 的高级功能 上一主题 | 下一主题
czweb
初级用户





积分 75
发帖 75
注册 2009-10-23
状态 离线
『楼 主』:  [讨论]ping 的高级功能

ping或别的什么dos命令,

可以一直ping,直接对方计算机ping通后再执行下一个命令,不需要手工参与

2009-11-5 16:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccyyxxx
新手上路





积分 16
发帖 15
注册 2009-10-2
状态 离线
『第 2 楼』:  

@echo off
rem 要ping 的ip
set ip=192.168.1.3
:pingip
FOR /F "DELIMS=" %%L IN ('ping %ip% -n 1') DO (
ECHO.%%L | find /i "ms" 2>nul&& goto eof)
@echo ping不通,重试
goto pingip
:eof
echo ping通,继续
pause

[ Last edited by ccyyxxx on 2009-11-6 at 10:34 ]

2009-11-6 10:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lincc0519
初级用户




积分 24
发帖 17
注册 2009-10-7
状态 离线
『第 3 楼』:  

直接用%errorlevel%来判断就行了

2009-11-6 13:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccyyxxx
新手上路





积分 16
发帖 15
注册 2009-10-2
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by lincc0519 at 2009-11-6 13:33:
直接用%errorlevel%来判断就行了

不知道那个算错误信息...
长知识了
那可以写成这样
@set ip=www.qq.com
:IP
@ping %ip% -n 1 >NUL ||(@ECHO 不通 & GOTO IP)
@ECHO 通&PAUSE>nul

2009-11-6 20:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lincc0519
初级用户




积分 24
发帖 17
注册 2009-10-7
状态 离线
『第 5 楼』:  

你那个不行的,||是前面的命令失败后才执行后面的命令,你那句不管通不通都会是命令执行成功,用if来判断%errorlevel%值就可以看成不成功,如果%errorlevel%等于0就成功如果等于1就不成功,用%errorlevel%可以判断很多命令的错误值,这样就不用for去提取那些信息了,对了还要分是中文还是英文的。

2009-11-6 23:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccyyxxx
新手上路





积分 16
发帖 15
注册 2009-10-2
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by lincc0519 at 2009-11-6 23:26:
你那个不行的,||是前面的命令失败后才执行后面的命令,你那句不管通不通都会是命令执行成功,用if来判断%errorlevel%值就可以看成不成功,如果%err ...

是啊,不通就运行||后的命令,通就不运行||后的命令
通了就跳过goto ip了
经测试,是可行的

2009-11-7 08:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
czweb
初级用户





积分 75
发帖 75
注册 2009-10-23
状态 离线
『第 7 楼』:  

谢谢两位,我是这样写的
@echo off
cls
set /p pc=输入计算机名称:

:testIP
ping -a %pc% -n 1 >nul
if %ERRORLEVEL%==1 goto :testIP

:start
ECHO 通了
现又出了一个问题,这个命令我是打算这样用在局域网的,
先用远程开机命令开机,然后就开始ping,ping通说明开机启动好了,再就可以开始远程管理一系列的事情了。

问题就如机器故障总不能一直Ping下去吧,就死循环了,要有点容错能力,一般开机20秒应该差不多了,怎么让ping对一台机器执行20秒,还没通的话就开始操作下一台电脑

2009-11-9 11:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccyyxxx
新手上路





积分 16
发帖 15
注册 2009-10-2
状态 离线
『第 8 楼』:  

@echo off
cls
:ip
set /p pc=输入计算机名称:

set n=0
:testIP
ping -a %pc% -n 1 >nul
if %ERRORLEVEL%==1 (set /a n+=1
if %n%==20 goto :超时
goto :testIP)

:start
ECHO 通了
goto startpro

:超时
ECHO 超时
goto ip

:startpro

[ Last edited by ccyyxxx on 2009-11-9 at 19:39 ]

2009-11-9 19:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wuchan
初级用户





积分 119
发帖 59
注册 2008-11-21
状态 离线
『第 9 楼』:  

这个命令不错学习了。

2009-11-23 17:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjjgq
初级用户





积分 39
发帖 27
注册 2007-9-10
状态 离线
『第 10 楼』:  

学习了,不过还得学习下set的用法才好呀

2009-11-30 15:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
heixing
初级用户





积分 28
发帖 16
注册 2005-12-26
状态 离线
『第 11 楼』:  

学习一下!以后用的上!

2009-12-30 23:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
CopyFile
新手上路




积分 11
发帖 8
注册 2009-11-1
来自 福建
状态 离线
『第 12 楼』:  

学习了



如果这一切只是童话~~~
2009-12-31 04:29
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (61288393)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: