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

[网络连接] 批处理怎样比较同一文件内的不同行?

我自己写了个ADSL自动断网重新拨号的批处理,每次拨号后都会在ip.txt文件添加当前ip,现在想实现每次都自动比较IP.TXT文件中最后两行是不是一样,如果一样继续重新断网、拨号,直到不一样就调用IE(写这个的目的是为了重新拨号后获得一个不同的IP),不知如何能实现比较,或者有没有更好的办法判断重新拨号后的IP与之前的不重复,谢谢了

  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. :拨号
  4. for /f "delims=" %%a in (ip.txt) do (
  5.     set IP.Last=!IP.Current!
  6.     set IP.Current=%%a
  7. )
  8. if "%IP.Current%"=="%IP.Last%" goto 拨号
  9. start "" iexplore http://bathome.net/thread-10683-1-1.html
  10. pause
复制代码

TOP

回复 2楼 的帖子

通过学习,自己写了个
  1. @echo off
  2. color 9f
  3. mode con coLs=40 Lines=12
  4. echo. >iplist.txt
  5. for /f "skip=1 tokens=2 delims=:" %%i in ('ipconfig/all^|findstr /c:"PPP adapter adsl" /c:"IP Address"') do (
  6. set i=%%i
  7. )
  8. set i=%i: =%
  9. echo %i% >>iplist.txt
  10. :a
  11. echo.
  12. echo.
  13. echo.
  14. echo           正在断开网络连接...
  15. rasdial "宽带连接名" /disconneCt >nul 2>nul
  16. cls
  17. echo.
  18. echo.
  19. echo.
  20. echo  网络已断开,30秒后将重新拨号,请稍后...
  21. color 47
  22. ping -n 30 127.1 >nul 2>nul
  23. CLS
  24. color 9f
  25. echo.
  26. echo.
  27. echo.
  28. ECHO         正在连接网络...
  29. echo.
  30. rem
  31. rasdial "宽带连接名" "账号" "密码" >nul
  32. for /f "skip=1 tokens=2 delims=:" %%a in ('ipconfig/all^|findstr /c:"PPP adapter adsl" /c:"IP Address"') do set a=%%a
  33. set a=%a: =%
  34. findstr /r "^%a%$" IPList.txt&&(goto a)||(>>IPList.txt echo %a%)
  35. start iexplore.exe "http://bbs.bathome.net"
  36. exit
复制代码
但运行后不管两次获得的IP地址是不是一样都写入了IPLIST.TXT,而没有做比较,不知问题出在哪


[ 本帖最后由 qdlfk 于 2011-1-12 02:03 编辑 ]

TOP

回复 3楼 的帖子

把@echo off删掉,多加几个pause,在cmd里面跟踪一下执行过程。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4楼 的帖子

已经解决
把开头的echo %i% >>iplist.txt
写成>>iplist.txt echo %i%就没问题了
不知道两种写法有什么本质的区别[/SIZE]

TOP

返回列表