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

[文本处理] [已解决]批处理如何查找排序后数列的缺少项?

123.txt文件内容如下:
  1. 0001
  2. 0002
  3. 0003
  4. 0004
  5. 0005
  6. 0007
  7. 0009
  8. 0010
  9. 0015
  10. 0016
  11. 0017
  12. 0021
  13. 0023
  14. 0024
  15. 0025
  16. 0028
  17. 0029
  18. 0030
复制代码
这些都是固定的4位数字,把它们从小到大排序后往往有一些数缺少了,
从而造成这个数列并不是连续数的数列,请问如何找出其中缺少了的数?

[ 本帖最后由 januapr 于 2009-8-23 22:47 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

  1. for /l %%i in (1 1 30) do (
  2. set p=000000%%i
  3. set p=!p:~-4!
  4. find “!p!” 123.txt>nul||echo !p!
  5. )
复制代码
这样吗?

[ 本帖最后由 基拉freedom 于 2009-8-23 21:17 编辑 ]
1

评分人数

o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=* delims=0" %%a in (123.txt) do (
  4.     set %%a=.
  5.     set end=%%a
  6. )
  7. set /p start=<123.txt
  8. for /f "tokens=* delims=0" %%a in ("%start%") do set start=%%a
  9. for /l %%b in (%start% 1 %end%) do (
  10.     if not defined %%b (
  11.         set var=000%%b
  12.         echo !var:~-4!
  13.     )
  14. )
  15. pause
  16. exit
复制代码
  1. @echo off
  2. if "%~1"=="echo" goto echo
  3. for /f %%a in ('"%~f0" echo ^| findstr /vg:123.txt') do echo %%a
  4. pause
  5. exit
  6. :echo
  7. setlocal enabledelayedexpansion
  8. set /p start=<123.txt
  9. for /f %%a in (123.txt) do set end=%%a
  10. for /l %%a in (1%start% 1 1%end%) do (
  11.     set var=%%a
  12.     echo !var:~1!
  13. )
复制代码

[ 本帖最后由 tireless 于 2009-8-23 22:23 编辑 ]
2

评分人数

TOP

回复 2楼 的帖子

先谢谢二楼的朋友,你的方法可以解决问题了!
有个小建议,以后把代码写完整嘛,要不新入门的朋友又看不懂了,呵呵!
  1. @echo off
  2. for /l %%i in (1 1 30) do (
  3.   setlocal enabledelayedexpansion
  4.   set p=000000%%i
  5.   set p=!p:~-4!
  6.   find "!p!" 123.txt>nul||echo !p!
  7.   endlocal
  8. )
  9. pause
复制代码
偷偷的告诉你,
“!p!” 123这里你用了两个空格相信是你的手误,嘻嘻!
1

评分人数

    • 基拉freedom: 建议我会听的 呼呼 没写完 没用变量延迟就运 ...PB + 1

TOP

恩 lz的建议会听的^_^
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

回复 3楼 的帖子

非常高效呀!
先谢谢了!
但由于水平有限,我还要慢慢看才能看得明!。。。。

TOP

返回列表