ping的批处理文件编写

来源:互联网 发布:机智软件破解版 编辑:程序博客网 时间:2024/05/16 13:45
原文地址:ping的批处理文件编写作者:迷你猫
做为一名网络工程师,经常要测试某地网络的好坏,而最直接的命令就是ping,但是一次ping好多天,而且每隔一段时间就要ping和tracert,使工作繁琐麻烦,所以就需要学习一些简单的批处理了。
下面跟懒人简单介绍一下ping的批处理文件编写。
首先,在电脑的任一个地方,(我习惯在桌面)新建一个文本文档,打开之后写入下面语句
date/t >>c:test.txt (显示日期,并重定向写入到c盘下text.txt下)
time/t >>c:test.txt (显示时间,并重定向写入到c盘下text.txt下)
ping -n 50 192.168.1.1>>c:test.txt (执行ping命令,ping地址192.168.1.1总共50个包,然后写入c盘下test.txt文件中)
tracert 192.168.1.1>>c:test.txt (执行tracert命令,tracert地址192.168.1.1,并写入c盘下的test.txt文件中)
然后,写入以上简单的命令后保存退出,并重命名刚才的文本文档,要以后缀名bat结尾(注:该文件不要重命名为ping.bat,否则容易陷入DOS循环。原因:DOS内部命令与批文件重名,会陷入DOS循环)

那如何让批处理文件每隔一定的时间执行一次呢!
只需要在用GOTO即可;举例如下:
@echooff
:main
ping 192.168.1.1>>c:test.txt
ping -n 60127.1>nul&gotomain
(其中goto就是跳转的意思,60就是大约60秒;大概的意思应该就是执行ping命令,执行完60秒以后重新跳转到开始继续执行ping命令,其中60秒的时间可以修改)

大家都知道如果ping某个地址50个包,然后重定向到文本中,从文本查看的时候,我们有时只需要查看丢包率和延时,其中50个包的往返信息都没用,如何将那些没用的信息去掉呢!
下面需要用到管道符|find命令;还是举例如下:
ping 192.168.1.1|find /v "Request timed out"|find /v "Replyfrom">>c:test.txt
(其中管道符|的意思是将上一命令执行的结果传递给下一命令去处理;find是查找的意思,/v是find的参数,意思是显示所有未包含指定字符串的行,其中find还有其他参数如下
/V 显示所有未包含指定字符串的行。 /C 仅显示包含字符串的行数。 /N 显示行号。 /I搜索字符串时忽略大小写。 /OFF[LINE]不要跳过具有脱机属性集的文件。
上面一句总的意思是将ping192.168.1.1输出的结果剔除有Request timedout和Replyfrom的行,再将结果保存到test.txt文件中)

下面写一个简单的批处理文件供大家参考
@echo off :main date/t>>d:a.txt time/t>>d:a.txt
date/t>>d:t.txt time/t>>d:t.txt ping -n 5 192.168.100.1|find /v "Request timed out"|find /v "Replyfrom">>d:a.txt tracert 192.168.100.2>>d:t.txt echo-------------------------------------------------------------------------------->>d:a.txt echo-------------------------------------------------------------------------------->>d:t.txt ping -n 3600127.1>nul&goto main

接下来再给同行介绍一个ping某一地址段的批处理文件:
for /l %p in (1,1,101) do@ping 192.168.0.%p -n 1>>c:test.txt
意思是:ping192.168.0段的地址,从192.168.0.1开始ping,每隔1个IPping一个包,一直ping到192.168.0.101,然后将结果保存到c盘下的test.txt文件中。
以上为学习中的简单总结,希望能帮到同行们,如有问题请留言。
0 0
原创粉丝点击