标题: [网络连接] 批处理怎样比较同一文件内的不同行? [打印本页]
作者: qdlfk 时间: 2011-1-7 10:13 标题: 批处理怎样比较同一文件内的不同行?
我自己写了个ADSL自动断网重新拨号的批处理,每次拨号后都会在ip.txt文件添加当前ip,现在想实现每次都自动比较IP.TXT文件中最后两行是不是一样,如果一样继续重新断网、拨号,直到不一样就调用IE(写这个的目的是为了重新拨号后获得一个不同的IP),不知如何能实现比较,或者有没有更好的办法判断重新拨号后的IP与之前的不重复,谢谢了
作者: tmplinshi 时间: 2011-1-7 10:33
- @echo off
- SetLocal EnableDelayedExpansion
-
- :拨号
- for /f "delims=" %%a in (ip.txt) do (
- set IP.Last=!IP.Current!
- set IP.Current=%%a
- )
- if "%IP.Current%"=="%IP.Last%" goto 拨号
-
- start "" iexplore http://bathome.net/thread-10683-1-1.html
- pause
复制代码
作者: qdlfk 时间: 2011-1-12 01:53 标题: 回复 2楼 的帖子
通过学习,自己写了个- @echo off
- color 9f
- mode con coLs=40 Lines=12
- echo. >iplist.txt
- for /f "skip=1 tokens=2 delims=:" %%i in ('ipconfig/all^|findstr /c:"PPP adapter adsl" /c:"IP Address"') do (
- set i=%%i
- )
- set i=%i: =%
- echo %i% >>iplist.txt
-
- :a
- echo.
- echo.
- echo.
- echo 正在断开网络连接...
- rasdial "宽带连接名" /disconneCt >nul 2>nul
- cls
- echo.
- echo.
- echo.
- echo 网络已断开,30秒后将重新拨号,请稍后...
- color 47
- ping -n 30 127.1 >nul 2>nul
- CLS
- color 9f
- echo.
- echo.
- echo.
- ECHO 正在连接网络...
- echo.
- rem
- rasdial "宽带连接名" "账号" "密码" >nul
- for /f "skip=1 tokens=2 delims=:" %%a in ('ipconfig/all^|findstr /c:"PPP adapter adsl" /c:"IP Address"') do set a=%%a
- set a=%a: =%
- findstr /r "^%a%$" IPList.txt&&(goto a)||(>>IPList.txt echo %a%)
- start iexplore.exe "http://bbs.bathome.net"
- exit
复制代码
但运行后不管两次获得的IP地址是不是一样都写入了IPLIST.TXT,而没有做比较,不知问题出在哪
[ 本帖最后由 qdlfk 于 2011-1-12 02:03 编辑 ]
作者: Batcher 时间: 2011-1-12 10:15 标题: 回复 3楼 的帖子
把@echo off删掉,多加几个pause,在cmd里面跟踪一下执行过程。
作者: qdlfk 时间: 2011-1-12 16:23 标题: 回复 4楼 的帖子
已经解决
把开头的echo %i% >>iplist.txt
写成>>iplist.txt echo %i%就没问题了
不知道两种写法有什么本质的区别[/SIZE]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |