号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
用户说“上不了网”,你远程过去,是手动敲 ipconfig、ping、nslookup……一条条复制?
还是双击一个脚本,3秒生成完整诊断报告?
在快节奏的IT支持中,效率就是口碑。
今天就来教你用一个批处理脚本(.bat),自动执行10+个关键网络诊断命令,并将结果保存为带时间戳的文本文件,实现“一键出报告,精准定位问题”。
一、为什么需要这个工具箱?
✅ 节省时间:避免重复输入命令
✅ 信息完整:一次性收集IP、路由、DNS、连接状态等
✅ 便于追溯:日志文件可存档、转发、对比
✅ 降低门槛:非专业人员也能执行标准诊断
★💡 适用于:桌面支持、远程协助、故障复盘、用户自助排查
二、一键诊断脚本(network_diag.bat)
将以下内容复制到记事本,保存为 network_diag.bat(注意后缀为 .bat):
@echo off :: Windows 网络诊断工具箱 v1.2 :: 自动收集网络配置与连通性信息 set "log_file=NetworkDiag_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt" set log_file=%log_file: =0% echo 正在生成网络诊断报告... echo ================================ > "%log_file%" echo 诊断时间: %date% %time% >> "%log_file%" echo ================================ >> "%log_file%" echo. >> "%log_file%" echo [1/10] 获取IP配置... ipconfig /all >> "%log_file%" 2>&1 echo [2/10] 测试本地协议栈... ping 127.0.0.1 -n 2 >> "%log_file%" 2>&1 echo [3/10] 测试默认网关连通性... for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr "Default Gateway" ^| findstr "[0-9]"') do ( set "gw=%%a" goto :got_gw ) :got_gw if defined gw ( echo 网关: %gw% ping %gw% -n 3 >> "%log_file%" 2>&1 ) else ( echo 未检测到默认网关 >> "%log_file%" ) echo [4/10] 测试公网连通性 (8.8.8.8)... ping 8.8.8.8 -n 3 >> "%log_file%" 2>&1 echo [5/10] 测试DNS解析... nslookup www.baidu.com >> "%log_file%" 2>&1 echo [6/10] 显示ARP缓存... arp -a >> "%log_file%" 2>&1 echo [7/10] 显示路由表... route print >> "%log_file%" 2>&1 echo [8/10] 显示活跃网络连接... netstat -an >> "%log_file%" 2>&1 echo [9/10] 检查网络适配器状态... netsh interface show interface >> "%log_file%" 2>&1 echo [10/10] 检查Winsock和网络重置状态... netsh winsock show catalog >> "%log_file%" 2>&1 echo. >> "%log_file%" echo ================================ >> "%log_file%" echo 诊断完成!报告已保存为: %log_file% echo ================================ >> "%log_file%" echo. echo ✔ 诊断完成!报告已保存为: echo %cd%\%log_file% echo. pause
三、如何使用?
步骤1:以管理员身份运行(推荐)
右键 network_diag.bat → 以管理员身份运行
(部分命令如 netsh 需要权限)
步骤2:等待几秒钟
脚本自动执行10项检查
屏幕显示进度
步骤3:查看报告
生成文件如:NetworkDiag_20251124_143022.txt
用记事本或VS Code打开,内容结构清晰:
============================ 诊断时间: 2025/11/24 14:30:22 ============================ [1/10] 获取IP配置... Windows IP Configuration Host Name . . . . . . . . . . . . : DESKTOP-ABC ... IPv4 Address. . . . . . . . . . . : 192.168.1.100 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1 [2/10] 测试本地协议栈... Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 [3/10] 测试默认网关连通性... Reply from 192.168.1.1: bytes=32 time=1ms TTL=64 [4/10] 测试公网连通性 (8.8.8.8)... Request timed out. ← 问题!外网不通 [5/10] 测试DNS解析... Non-authoritative answer: Name: www.baidu.com Addresses: 220.181.38.148 39.156.66.18 ...
四、报告解读:快速定位常见问题

五、进阶优化建议
1. 添加Tracert(可选)
在脚本中加入:
echo [11/11] 路径追踪... tracert -d -w 1000 -h 10 8.8.8.8 >> "%log_file%" 2>&1
⚠️ 注意:tracert 较慢,可能延长执行时间
2. 自动上传到共享目录(企业环境)
copy "%log_file%" "\\server\diag_reports\"
3. 打包为用户自助工具
将 .bat 文件发给用户
用户双击运行,将生成的 .txt 发回给你
实现“用户操作,工程师分析”
六、安全与兼容性说明
无害性:脚本仅读取系统信息,不修改任何配置
兼容性:支持 Windows 7 / 10 / 11 / Server 2008+
权限:普通用户可运行,但部分信息(如Winsock)需管理员权限才完整
七、总结
🎯 记住: 重复的手工操作,是效率最大的敌人。
这个小小的 .bat 文件,不仅能提升你的排错速度,还能让每一次故障处理有据可查、有迹可循。
原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
314

被折叠的 条评论
为什么被折叠?



