中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]彩色汉字显示多次ping的结果
作者:
标题: [求助]彩色汉字显示多次ping的结果 上一主题 | 下一主题
amato
新手上路





积分 5
发帖 4
注册 2010-7-27
状态 离线
『楼 主』:  [求助]彩色汉字显示多次ping的结果

写此批处理的原因:
    很多做维护的朋友可能都会遇到这样的问题,某个微机网络不通(有时仅仅因为把本地连接禁用了),由于距离较远,通常先在电话中询问故障现象。可使用者对计算机不太熟悉,常常一问三不知。
    为了便于维护,快速找出故障原因,只好写一个ping命令的批处理,依次对本机、网关、更远的IP地址进行测试。

要求如下:
1、windows 2K/XP系统环境;
2、由近及远ping多个地址;
3、不显示ping的过程,自动判断ping返回的结果。如下四种:
             a、Reply from xxx.xxx.xxx.xxx: byte=32 time<2ms TTL=128
             b、Request time out.
             c、Hardware error
             d、Destination host unreachable
4、中文彩色字符依次显示每次ping的结果,并对异常状态进行提醒。
5、方便修改ip及相关信息(每个机器上bat文件中IP不同,非同一局域网)

      由于本人是新手,不会编程,下面的代码是花了几天拼凑的。
      感觉写的比较乱,而且有bug(再次运行就不显示ping的结果报告,见图)
请各位朋友帮忙修改,不胜感激!!!
      所参考的帖子 作者:electronixtar《超越color命令 - CMD里显示彩色文字》
@echo off
rem--------------------------加载驱动文件----------------------------
color 0b
chcp 437>nul&&graftabl 936>nul
if not exist CONFIG.NT copy %WinDir%\System32\CONFIG.NT CONFIG.NT
@cls
echo DEVICE=%WinDir%\System32\ANSI.SYS /x >%WinDir%\System32\CONFIG.NT
command /cecho 
::--------------------------------------------------------------------
::----------------------------设置结果报告----------------------------
set s=连接正常
set t=注意!!!
set u=连接中断
set v=目的主机不能到达:1.本地连接是否禁用 2.网线是否接好 3.路由是否连接
set w=硬件错误:1.检查网线是否接好 2.本地连接是否禁用

::----------------------------开始ping本机----------------------------
@echo.

set a=本机网卡
set b=192.168.1.19
set c=本地路由
set d=192.68.1.1

@echo       正在检测%a%...
@echo ----------------------------------------------------------------------------
for /l %%i in ('ping %b%') do (
    ping -n 1 %b%|find "TTL=" > nul && command /cecho  %a% 测试 正常
    ping -n 1 %b%|find "Request" > nul && command /cecho %t%   %a%  异常
    ping -n 1 %b%|find "Destination" > nul && command /cecho %t% %v%
    ping -n 1 %b%|find "hardware" > nul && command /cecho %t% %w%
)

@echo ============================================================================
@echo.
::--------------------------------ping1-------------------------------

@echo       正在ping%c%...
@echo ----------------------------------------------------------------------------
for /l %%i in ('ping %d%') do (
    ping -n 1 %d%|find "TTL=" > nul && command /cecho     %c%  %s%
    ping -n 1 %d%|find "Request" > nul && command /cecho   %t%  %c% %u%
    ping -n 1 %d%|find "Destination" > nul && command /cecho %t% %v%
)
@echo ============================================================================
@echo.
@echo 测试结束 按任意键退出
pause>nul
copy   CONFIG.NT   %WinDir%\System32\CONFIG.NT 1>nul 2>nul
copy   CONFIG.NT   %WinDir%\System32\CONFIG.NT 1>nul 2>nul
del   CONFIG.NT
正常的结果



再次运行就这样了 不知道什么原因



[ Last edited by amato on 2010-7-28 at 23:18 ]

2010-7-28 20:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
amato
新手上路





积分 5
发帖 4
注册 2010-7-27
状态 离线
『第 2 楼』:  

没有朋友能帮我看看吗

2010-7-29 19:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sl543001
中级用户




积分 499
发帖 225
注册 2008-12-30
状态 离线
『第 3 楼』:  

汗,这样的脚本我也写了个,记得传过,回头找找



SYBNQQ:354324773
2010-8-1 14:58
查看资料  发送邮件  发短消息 网志  OICQ (354324773)  编辑帖子  回复  引用回复

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


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



论坛跳转: