[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理如何在断网或者网卡被禁用取不到IP的情况下正常的显示?

  1. @echo off
  2. ::首页显示IP地址
  3. for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0')do for /f "tokens=3 delims=." %%b in ("%%a") do (set IP1=%%b)
  4. for /f "tokens=4" %%c in ('route print^|findstr 0.0.0.0.*0.0.0.0')do for /f "tokens=4 delims=." %%d in ("%%c") do (set IP2=%%d)
  5. for /f "tokens=3" %%e in ('route print^|findstr 0.0.0.0.*0.0.0.0')do (set getway=%%e)
  6. for /f "tokens=4" %%f in ('route print^|findstr 0.0.0.0.*0.0.0.0')do (set IP=%%f)
  7. set a= %IP1%
  8. set b= %IP2%
  9. set c=1
  10. if %IP1%==27 (set /a c=4)
  11. if %IP1%==28 (set /a c=3)
  12. if %IP1%==29 (set /a c=2)
  13. set /a d=%b%-50
  14. set /a e=%b%-10
  15. if %b% gtr 139 (set /a b=d) else (set /a b=e)
  16. echo 台席号:%c%楼%b%号
  17. echo IP地址:%IP%
  18. echo 网关:%getway%
  19. pause
复制代码
这是小弟写的一个脚本,根据IP来判断和显示所对应的台席号,目前有个问题,如果电脑在断网或者网卡被禁用的情况下,这段脚本就无法执行下去 ,请教各位高手、版主大大,如果如何在断网或者网卡被禁用的情况下抓取不到IP地址还能正常的显示一段提示比如:无法获取此台席IP地址...这样类似的提示,让后面的代码能够顺利的运行。

断网或者网卡被禁用的情况下,删掉 @echo off 看看到哪一步出错了,加个 if 判断。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    好的,我去掉看看,不知道if如何落笔。。。。

TOP

回复 2# Batcher



执行到这 a 和 b都等于 ,我在下面做了判断如果a和b都等于空的话,给他赋值,
  1. if %a%==%null% (set /a a=0)
  2. if %b%==%null% (set /a b=0)
复制代码
可还是没用,请问大大,我这样写的有问题吗?

TOP

回复 4# Speed乄Jay


语法上应该是这样比较好:
  1. if "%a%"=="" (set a=0)
复制代码
至于能否解决问题,你先测试一下吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Speed乄Jay


这里有 if 命令的教程:
http://bbs.bathome.net/thread-2576-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# Batcher


    我试了,把网卡禁用掉,a和b就又什么东西都没获取到,最后把代码改成下面这样,也不行。
  1. ::首页显示IP地址
  2. for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0')do for /f "tokens=3
  3. delims=." %%b in ("%%a") do (if "%%b"=="" (set IP1=%%b+1) else (set IP1=%%b))
  4. for /f "tokens=4" %%c in ('route print^|findstr 0.0.0.0.*0.0.0.0')do for /f "tokens=4
  5. delims=." %%d in ("%%c") do (if "%%d"=="" (set IP1=%%d+1) else (set IP2=%%d))
  6. for /f "tokens=3" %%e in ('route print^|findstr 0.0.0.0.*0.0.0.0')do (set getway=%%e)
  7. for /f "tokens=4" %%f in ('route print^|findstr 0.0.0.0.*0.0.0.0')do (set IP=%%f)
  8. set a=%IP1%
  9. set b=%IP2%
  10. set c=1
  11. if %IP1%==27 (set /a c=4)
  12. if %IP1%==28 (set /a c=3)
  13. if %IP1%==29 (set /a c=2)
  14. set /a d=%b%-50
  15. set /a e=%b%-10
  16. if %b% geq 140 (set /a b=d) else (set /a b=e)
  17. echo 台席号:%c%楼%b%号
  18. echo IP地址:%IP%
  19. echo 网关:%getway%
  20. pause
复制代码
头好大啊。

TOP

回复 7# Speed乄Jay


    用5楼的方法在获取不到a和b的时候提示:无法获取此台席IP地址。你的原始需求不是这样的吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 不知道是谁 于 2017-9-8 18:10 编辑

回复 7# Speed乄Jay

翻了下自用的一个批处理,断网状态下是可以的,但如果是禁用掉那就不行了
你可以测试下
netsh interface ip show config
  1. rem 搜索内网DNS,如果未找到则判断为外网
  2. netsh interface ip show config|findstr "10.137.252.3 10.137.195.7" >nul&&goto lan
  3. echo 可能是外网设备,不进行额外设置. . .
  4. goto end
复制代码

TOP

回复 9# 不知道是谁


    多谢。

TOP

回复 8# Batcher


    对。现在只要是断网或者网卡被禁用就出现问题了

TOP

返回列表