Board logo

标题: [求助]彩色汉字显示多次ping的结果 [打印本页]

作者: amato     时间: 2010-7-28 20:57    标题: [求助]彩色汉字显示多次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 ]

作者: amato     时间: 2010-7-29 19:59
没有朋友能帮我看看吗

作者: sl543001     时间: 2010-8-1 14:58
汗,这样的脚本我也写了个,记得传过,回头找找