找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20453|回复: 6

[网络连接] 【已解决】求助批处理如何将检测到的mtu 自动应用?

[复制链接]
发表于 2022-11-5 17:23:46 | 显示全部楼层 |阅读模式
本帖最后由 22123 于 2022-11-7 11:44 编辑
  1. @echo off
  2. chcp 437>nul
  3. netsh int ip show subinterfaces
  4. set /p ip=ipaddress:
  5. if "%ip%"=="" (set ip=qq.com)
  6. if %ip%.==. goto:eof
  7. echo.

  8. set con=
  9. for /f "tokens=1 delims= " %%a in ('ping %ip% -n 1 ^| find "Reply"') do set con=%%a
  10. if %con%.==. goto:discon

  11. set min=0
  12. set max=2000

  13. :test
  14. call:try %min% %max%
  15. if %df%.==. (
  16.     if %min%==%package% goto:result
  17.     set min=%package%
  18. ) else (
  19.     set max=%package%
  20. )
  21. goto:test
  22. goto:eof

  23. :result
  24. echo.
  25. echo package: %package%
  26. set /a mtu=%package% + 28
  27. echo MTU : %mtu%
  28. echo.
  29. pause
  30. goto:eof

  31. :try
  32. set /a package=(%1+%2)/2
  33. echo try : %package% [%1 , %2]
  34. call:ping %package%
  35. goto:eof

  36. goto:eof
  37. :ping
  38. set df=
  39. for /f "tokens=1 delims= " %%a in ('ping %ip% -f -l %1 -n 1 ^| find "DF"') do set df=%%a
  40. goto:eof

  41. :discon
  42. echo Error: can not connect to %ip%
  43. echo.
  44. pause
复制代码
有两个问题请教各位大大 ,一个是 如何将得到的最佳 MTU数值 自动添加到%MTU%
这行加在哪里? netsh int ip set subinterface "以太网" mtu=%MTU% store=persistent

还有个问题是 这段代码只能在 chcp 437 下运行,改chcp 936 可以识别中文 但运行不能继续执行.......  本代码也不能保存为ANSI,    导致不能识别 中文 以太网 这几个字,就不能自动修改mtu了
发表于 2022-11-6 17:21:41 | 显示全部楼层
回复 1# 22123


改chcp 936 可以识别中文 但运行会闪退

把 @echo off 删掉再执行,看看是哪一行在报错。
如果还是“闪退”,请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
 楼主| 发表于 2022-11-6 19:10:44 | 显示全部楼层
本帖最后由 22123 于 2022-11-6 22:51 编辑

回复 2# Batcher


管理员大大您好  是我描述有问题
这段代码 chcp 437 下是可以正常执行的 但不支持中文,会显示乱码
如果chcp改为936 可以显示中文, 但指令会错误 输入网址或ip 会跳到  Error: can not connect to %ip%

这个有办法解决吗?
发表于 2022-11-6 19:25:19 | 显示全部楼层
试一下把第10行的find "Reply"改成中文
 楼主| 发表于 2022-11-6 21:10:52 | 显示全部楼层
回复 4# idwma
大大您好 Reply改为中文 怎么改?
发表于 2022-11-7 10:27:36 | 显示全部楼层
回复 3# 22123


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. chcp 936 >nul
  3. set "ip=127.0.0.1"
  4. set "con="
  5. for /f %%a in ('ping %ip% -n 1 ^| find "回复"') do (
  6.     set "con=%%a"
  7. )
  8. echo con的值是:%con%
  9. pause
复制代码
 楼主| 发表于 2022-11-7 11:44:52 | 显示全部楼层
回复 6# Batcher


    谢谢大大 已完美解决此问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:12 , Processed in 0.018689 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表