网络故障诊断代码及诊断原理由于错误之处在所难免,而文档又不能自行修改,所以给出代码更新地址讨论地址:http://www.cn-dos.net/forum/viewthread.php?tid=51117&fpage=1一、诊断代码@echo off & setlocal enabledelayedexpansiontitle %~n0. code by rs + 2010.5.3set /a last_flag=1::首先判断物理连接是否正常.echo [零]判断物理连接是否正常.ipconfig/all 2>nul | find /i "Media disconnected">nul 2>nul &&(echo.&echo 请检查物理连接.....&pause>nul)||(echo ----ok.)::启动本地连接或重启本地连接echo.&echo [一]启动本地连接中......set num=0for /f "tokens=2 delims=\" %%k in ('devcon listclass net ^| find /i "net"') do ( if !num! equ 0 set deviceinfo=%%k set /a num+=1 )set num1=0for /L %%j in (0,1,22) do ( if !num1! LSS 2 ( set devicevar=!deviceinfo! set str=!devicevar:~0,1! set devicevar=!devicevar:~1! if "!str!"=="&" ( set /a num1+=1 ) set /a total+=1 ) )set /a total=!total!-1set deviceinfo=!deviceinfo:~0,17!devcon status pci\!deviceinfo!* | find /i "disabled" >nul&&(devcon enable pci\!deviceinfo!*>nul&netsh winsock reset>nul&ping -w 1000 -n 10 127.1>nul)echo ----ok.::判断本地连接是否受限echo.&echo [二]判断本地连接是否受限. ipconfig/all | find /i "169.254" >nul 2>nul &&(set /a localconn=0)||(set /a localconn=1)if !localconn! equ 0 ( ipconfig/release>nul 2>nul ipconfig/renew>nul 2>nul ping -w 1000 -n 6 127.1>nul ipconfig/all | find /i "169.254" >nul 2>nul &&(set /a localconn=0)||(set /a localconn=1) )if !localconn! equ 0 ( echo.&echo 本地连接可能受限.并请先检查交换机接口是否松动... echo 请确认交换机接口没有松动^!按任意键继续... pause>nul echo 执行一系列修复命令..... echo 1 重新启动本地连接... devcon restart pci\!deviceinfo!*>nul echo 2 重置 tcp/ip 协议组件到干净状态... netsh int ip reset c:\123.txt echo 3 重置 winsock... netsh winsock reset >nul echo 4 重新获取 ip... ipconfig /renew >nul echo 5 清除地址缓存信息......