- @echo off
- setlocal
- setlocal enabledelayedexpansion
- for /f "tokens=1,2" %%a in (b.txt) do (
- rem 根据局向生成完整的号码段,也就是补0补足7位
- set wan=%%a
- for /l %%c in (0,1,6) do (
- set stmp=%%a
- set stmp=!stmp:~%%c,1!
- if not defined stmp set wan=!wan!0
- )
- rem 在a.txt中查找对应的号码段的交换点是否与b.txt中一致
- rem flag用来标识局向是否正确,f表示不正确,t表示正确
- set flag=f
- for /f "tokens=1,2" %%d in (a.txt) do (
- echo %%d | find "!wan!">nul
- if not errorlevel 1 (
- if %%e==%%b (
- set flag=t
- )
- )
- )
- rem 局向不正确输出结果到c.txt
- if !flag!==f echo %%a %%b>>c.txt
- )
- endlocal
复制代码 第一次使用这么多for,程序运行起来好慢,竟用了十几分钟
我的结果跟楼主不一致,比楼主多了9条记录。多出的都是在b.txt里有,而在a.txt却没有对应号码段的记录
问一下,在复合语句中,能使用goto吗?本来我想用goto优化一下程序的,但goto的表现却很怪异
[ 本帖最后由 summerflower 于 2010-1-23 16:07 编辑 ] |