标题: [网络连接] 批处理不断的ping对方,返回结果,查看何时在线,何时掉线 [打印本页]
作者: wainh 时间: 2009-12-4 10:53 标题: 批处理不断的ping对方,返回结果,查看何时在线,何时掉线
一直想找这样的网络软件。但都找不出来,只能求助各位大大的批处理了。谢谢了,效果就是不断ping对方,再返回结果。
如果可能,我希望的效果是:连接ping通两次,判定为在线,失败两次,判定为离线。最好在线跟离线后面都有跟时间(例如:在线时间为从**:** 离线时间**:** 在线时间**:**..........)
本人工作有点涉及网管方面的,有谁有这方面的软件也请推荐一下。谢谢了
作者: a1my 时间: 2009-12-4 11:11 标题: 写个脚本就可以实现
ping 有这个参数 -c 可以写个判段就可以实现
作者: batman 时间: 2009-12-4 11:53
- @echo off&setlocal enabledelayedexpansion
- set "#0=在线"&set "#1=离线"
- :lp
- set /a _0=0,_1=0
- for /l %%a in (1,1,2) do (
- ping /n 1 www.baidu.com>nul
- set /a _!errorlevel!+=1
- )
- for %%a in (0 1) do if !_%%a! equ 2 set "str=!#%%a!:%time%"&goto next
- goto lp
- :next
- echo %str%&goto lp
复制代码
作者: wsjxwj 时间: 2009-12-4 14:52
原帖由 batman 于 2009-12-4 11:53 发表
@echo off&setlocal enabledelayedexpansion
set "#0=在线"&set "#1=离线"
:lp
set /a _0=0,_1=0
for /l %%a in (1,1,2) do (
ping /n 1 www.baidu.com>nul
set /a _!errorlevel!+=1
)
for %%a in ( ...
版主你的代码大概意思我是明白了,但是"_0=0,_1=0 _!errorlevel!+=1 中的这个"_"这个下划线在这里有什么作用?
作者: caruko 时间: 2009-12-4 15:01
_ 是为了跟_0 _1这2个变量匹配的...
如果errorlevel=0 那么 _!errorlevel! 是指 _0 这个变量
_0 是ping不通的次数 _1是ping通的次数
作者: wainh 时间: 2009-12-4 17:18
非常感谢啊。连超级版主都出来了。效果很好,很强大。短短的几行代码,功能真是强大啊,以后自己也要学习学习,把教程打印出来。到时望版主不吝赐教。
还有个不情之请,那个在线时间是否能精简点。效果如下:
第一次,第2次能ping成功。就显示当前时间,之后如果一直能成功,就不要显示了。
如果连ping两次都失败,就显示第2次失败的当前时间,之后如一直ping失败,亦不再显示。但如果连ping两次成功,就再显示成功的当前时间。就这样一路循环。
这样效果就更好了。当然,现在的样子已经有足够的功能了。再次感谢,非常谢谢。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |