Board logo

标题: [文本处理] 批处理如何获取两个指定数字之间的的连续数字 [打印本页]

作者: fs999    时间: 2013-8-21 09:41     标题: 批处理如何获取两个指定数字之间的的连续数字

本帖最后由 pcl_test 于 2016-8-26 20:04 编辑

求 高地位电话号码变成 连续号码的批处理。
各位大神 早上好,

        本人有一需求,有一text文本,里面是电话号码, 只有 高地位,想输出 为 连续的 号码,如下

低位号码             高位号码                            经过批处理 得出的要得出连续的结果
88800111         8880222                        88800111、88800112、88800113、... ... 连续的号码 ... ... 、8880020、88800221、88800222
88800330         88800333                     8880330 、88800331、88800332、88800333
88800339        88800339                      88800339    (若高地位相同,则显示该一个号码)

输出的 结果 ,可保存到ok.txt 文本 或Excel 。分割符号不作要求,  如  结果 88800111\88800112\88800113\    或 88800111、88800112、88800113

谢谢
作者: fs999    时间: 2013-8-21 10:45

有人吗? 在线等着呢。。。
作者: DAIC    时间: 2013-8-21 10:48

第二行没有高位号码?
作者: terse    时间: 2013-8-21 12:46

本帖最后由 terse 于 2013-8-22 13:46 编辑
  1. @echo off
  2. ::如果号码不大于2147483646 这样试
  3. (for /f "tokens=1-2" %%a in (text.txt) do (
  4. set/p=%%a,%%b,<nul
  5.         for /L %%i in (%%a,1,%%b) do set/p=%%i,<nul
  6. echo;
  7. ))>ok.txt
  8. start "" ok.txt
复制代码

作者: fs999    时间: 2013-8-22 10:52

感谢 terse 热心提供代码,执行了一下,看内容 似乎可行,但是 没有保存结果。

我编辑了 问题的内容,请帮忙 优化一下代码。谢谢

另外补充, 电话号码最大长度为 8位 ,最短 为 3 位 ,如 110    119

输出的结果 必须 与 原 高低 位号码 同行,不能转行,否则 导入 excel 会出错。
作者: ADSL0125    时间: 2013-8-22 12:00

回复 1# fs999
  1. @ECHO OFF
  2. REM 高位不能大于2147483646
  3. REM 源文件路径
  4. SET "SourecFile=D:\a.txt"
  5. IF "%1" NEQ "" SET "SourecFile=%1"
  6. REM 输出文件路径
  7. SET "OutputFile=D:\ok.txt"
  8. REM 高低位间分隔符
  9. SET DelimsChar=、
  10. REM 输出用分隔符
  11. SET SplitChar=,
  12. SET /P=""<NUL>%OutputFile%
  13. FOR /F "tokens=1-3 delims=%DelimsChar% " %%a IN (%SourecFile%) DO (
  14. FOR /L %%a IN (%%a,1,%%b) DO (
  15. IF %%a NEQ 0 (
  16. IF %%a EQU %%b (
  17. ECHO %%a>>%OutputFile%
  18. ) ELSE (
  19. SET /P="%%a%SplitChar%"<NUL>>%OutputFile%
  20. )
  21. )
  22. )
  23. )
  24. ECHO DONE,OUTPUT TO %OutputFile%
  25. PAUSE
复制代码

作者: terse    时间: 2013-8-22 13:46

回复 5# fs999

已修改




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2