echo的总结

echo -e "abc\ndef"
输出:
abc
def
-e表示启用解释反斜杠转义
默认为-E:禁用转义
echo本身默认最后会输出一个换行,要禁用最后的换行,可使用
echo -n "abc"
-n     do not output the trailing newline

echo具体语法如下:
Linux echo命令不能显示文件中的内容。
功能说明:显示文字。
语   法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:-n 不要在最后自动换行
 -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;

@echo off chcp 65001 >nul title 高级网络诊断工具 setlocal enabledelayedexpansion echo ================================ echo 高级网络诊断工具 echo ================================ echo. :: 记录开始时间 set "starttime=%time%" echo 测试开始时间: %date% %starttime% echo. :: 0. 获取默认网关 echo [步骤0] 正在获取默认网关地址... for /f "tokens=3" %%a in ('route print ^| findstr "0.0.0.0"') do set "gateway=%%a" echo 默认网关: !gateway! echo. :: 1. IP配置信息 echo [1] 正在获取IP配置信息... echo 正在执行: ipconfig /all echo. ipconfig /all | findstr /i "IPv4 Subnet Default Gateway DNS" echo. :: 2. 网络连通性序列测试 echo [2] 开始网络连通性测试... set targets=127.0.0.1 !gateway! 223.5.5.5 www.baidu.com www.google.com set descriptions=本地环回 默认网关 阿里DNS 百度 谷歌 set index=1 for %%t in (!targets!) do ( for /f "tokens=!index!" %%d in ("!descriptions!") do ( echo 正在测试: %%d(%%t)... ping -n 2 -w 1000 %%t if !errorlevel! equ 0 ( echo [成功] %%d 连通正常 ) else ( echo [失败] %%d 无法连接 :: 记录断网时间 echo %date% %time% - 网络断开: %%t >> network_failure_log.txt ) echo. ) set /a index+=1 ) :: 3. DNS解析测试 echo [3] 正在进行DNS解析测试... echo 正在执行: nslookup www.baidu.com nslookup www.baidu.com if !errorlevel! equ 0 ( echo [结果] DNS解析: 正常 ✓ ) else ( echo [结果] DNS解析: 异常 ✗ ) echo. :: 4. 路由追踪(到百度,最多5跳) echo [4] 正在执行路由追踪... echo 正在执行: tracert -h 5 www.baidu.com tracert -h 5 www.baidu.com echo. :: 5. 网速测试功能 echo [5] 开始网速测试... echo 正在下载测试文件,请稍候... if exist speedtest.tmp del speedtest.tmp >nul set "test_url=https://speedtest.tele2.net/10MB.zip" echo 测试URL: !test_url! set "start_ms=%time: =0%" :: 显示下载进度 echo 下载中... :: 计算下载时间 for /f "tokens=1-3 delims=:." %%a in ("!start_ms!") do ( set /a start_seconds=(((%%a*60)+1%%b)*60)+1%%c-366100 ) :: 使用curl下载并显示进度 curl -# -o speedtest.tmp !test_url! --connect-timeout 15 --max-time 45 if !errorlevel! neq 0 ( echo 下载失败,尝试备用下载源... set "test_url=https://download.microsoft.com/download/8/7/5/875DE6CE-65C0-4F6E-A7A4-6F5D5BAF29D9/SSMS-Setup-CHS.exe" curl -# -o speedtest.tmp !test_url! --connect-timeout 15 --max-time 45 ) set "end_ms=%time: =0%" for /f "tokens=1-3 delims=:." %%a in ("!end_ms!") do ( set /a end_seconds=(((%%a*60)+1%%b)*60)+1%%c-366100 ) if exist speedtest.tmp ( for %%F in (speedtest.tmp) do set "file_size=%%~zF" set /a download_time=end_seconds - start_seconds if !download_time! lss 1 set /a download_time=1 :: 计算下载速度 (Bytes/s 转换为 Mbps) set /a speed_bps=file_size / download_time set /a speed_mbps=speed_bps * 8 / 1000000 echo. echo ===== 网速测试结果 ===== echo 文件大小: !file_size! 字节 echo 下载时间: !download_time! 秒 echo 下载速度: !speed_mbps! Mbps :: 速度评级 if !speed_mbps! gtr 100 ( echo 网络状态: 极快 ⭐⭐⭐⭐⭐ ) else if !speed_mbps! gtr 50 ( echo 网络状态: 很快 ⭐⭐⭐⭐ ) else if !speed_mbps! gtr 20 ( echo 网络状态: 一般 ⭐⭐⭐ ) else if !speed_mbps! gtr 5 ( echo 网络状态: 较慢 ⭐⭐ ) else ( echo 网络状态: 很慢 ⭐ ) del speedtest.tmp >nul ) else ( echo 网速测试失败: 无法下载测试文件 echo 请检查网络连接或安装curl工具 ) echo. :: 6. 获取上次断网时间 echo [6] 检查网络中断历史记录... if exist network_failure_log.txt ( echo 最近网络中断记录: echo =================== set "count=0" for /f "usebackq delims=" %%a in (`type network_failure_log.txt ^| find /c /v ""`) do set "total=%%a" echo 总记录数: !total! 次中断 if !total! gtr 5 ( echo 显示最近5次记录: set /a skip_lines=total - 5 ) else ( set skip_lines=0 ) set "count=0" for /f "skip=!skip_lines! delims=" %%a in (network_failure_log.txt) do ( echo !count!. %%a set /a count+=1 ) ) else ( echo 暂无网络中断记录 ✓ ) echo. :: 7. 网络连接稳定性测试 echo [7] 正在进行网络稳定性测试... echo 正在执行: ping -n 10 !gateway! ping -n 10 !gateway! > stability_test.tmp echo 测试完成,分析结果... set "packet_loss=0" for /f "tokens=9" %%a in ('findstr /C:"丢失" stability_test.tmp') do ( set "packet_loss=%%a" ) for /f "tokens=7" %%a in ('findstr /C:"平均" stability_test.tmp') do ( set "avg_ping=%%a" ) del stability_test.tmp >nul echo 丢包率: !packet_loss! echo 平均延迟: !avg_ping! ms if "!packet_loss!"=="(0%%" ( echo 稳定性评级: 优秀 ✅ ) else if "!packet_loss!"=="(10%%" ( echo 稳定性评级: 一般 ⚠️" ) else ( echo 稳定性评级: 较差 ❌" ) echo. :: 记录结束时间 set "endtime=%time%" echo. echo 测试结束时间: %date% !endtime! :: 显示总结信息 echo. echo ========== 诊断完成 =========== echo 总结报告: echo ✓ IP配置信息已获取 echo ✓ 网络连通性已测试 echo ✓ DNS解析功能已检查 echo ✓ 网络路由已追踪 echo ✓ 网速测试已完成 echo ✓ 稳定性检测已进行 echo ✓ 历史记录已分析 echo. echo 注: 所有测试结果已显示在上面 echo. pause 修改并完善脚本
最新发布
08-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值