[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. setlocal
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=1,2" %%a in (b.txt) do (
  5.         rem 根据局向生成完整的号码段,也就是补0补足7位
  6.         set wan=%%a
  7.         for /l %%c in (0,1,6) do (
  8.                 set stmp=%%a
  9.                 set stmp=!stmp:~%%c,1!
  10.                 if not defined stmp set wan=!wan!0
  11.         )
  12.         rem 在a.txt中查找对应的号码段的交换点是否与b.txt中一致
  13.         rem flag用来标识局向是否正确,f表示不正确,t表示正确
  14.         set flag=f
  15.         for /f "tokens=1,2" %%d in (a.txt) do (
  16.                 echo %%d | find "!wan!">nul
  17.                 if not errorlevel 1 (
  18.                         if %%e==%%b (
  19.                                 set flag=t
  20.                         )
  21.                 )
  22.         )
  23.         rem 局向不正确输出结果到c.txt
  24.         if !flag!==f echo %%a %%b>>c.txt
  25. )
  26. endlocal
复制代码
第一次使用这么多for,程序运行起来好慢,竟用了十几分钟
我的结果跟楼主不一致,比楼主多了9条记录。多出的都是在b.txt里有,而在a.txt却没有对应号码段的记录
问一下,在复合语句中,能使用goto吗?本来我想用goto优化一下程序的,但goto的表现却很怪异

[ 本帖最后由 summerflower 于 2010-1-23 16:07 编辑 ]
1

评分人数

    • batman: 参与了就是好的,继续加油PB + 3
我是一只小菜鸟,飞到东来飞到西……

TOP

为什么我的程序运行起来那么慢?十多分钟,这个速度也太恐怖了吧
是启用了变量延迟的原因还是find运行很慢

[ 本帖最后由 summerflower 于 2010-1-24 10:48 编辑 ]
我是一只小菜鸟,飞到东来飞到西……

TOP

返回列表