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

[文本处理] 批处理怎样找txt文档中连号数字中的断码?

各位大大,我这里有一个文档,里面全都是连号的的数字,但并不是从头到尾都是连号,有一些数字缺失了,形成了断码。我现在想找出断码处前后的两个数字,比如说
0000000000000000
0000000000000001
0000000000000002
0000000000000003
0000000000000004
0000000000000005
0000000000000006
0000000000000008
0000000000000009
0000000000000010
0000000000000011
0000000000000012
0000000000000013
在这串数字里面第七行和第八行就差个07形成了断码,现在只需要将06找出来就行了。
求代码,感激不尽!

本帖最后由 batman 于 2011-4-18 09:10 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in (a.txt) do (
  3.     set "str=%%a"
  4.     for /f "tokens=1* delims=0" %%a in ("a!str!") do (
  5.         set "b=%%b"
  6.         if defined a (
  7.            set /a num=b-a
  8.            if !num! neq 1 echo !var!
  9.         )
  10.     )
  11.     set /a a=b&set "var=!str!"
  12. )
  13. pause>nul
复制代码
***共同提高***

TOP

本帖最后由 hanyeguxing 于 2011-4-18 09:20 编辑
  1. @echo off&set a=-1
  2. for /f %%a in (a.txt) do call:a %%a
  3. pause&exit
  4. :a
  5. set/aa+=1
  6. set b=000000000000000%a%
  7. if "%1"=="%b:~-16%" (set c=%1) else (
  8.     if defined c set c=&echo;%c%
  9.     goto:a
  10. )
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

3# hanyeguxing
要是不知道前面有多少个0呢,或者并不知道总字符数呢?
***共同提高***

TOP

4# batman


你都把方法用了,我只能重写个不同的,嘿嘿
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

感谢二楼三楼四楼各位大大,感激涕零!

TOP

返回列表