找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29233|回复: 6

[文本处理] 批处理如何获取两个指定数字之间的的连续数字

[复制链接]
发表于 2013-8-21 09:41:17 | 显示全部楼层 |阅读模式
本帖最后由 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

谢谢
 楼主| 发表于 2013-8-21 10:45:31 | 显示全部楼层
有人吗? 在线等着呢。。。
发表于 2013-8-21 10:48:26 | 显示全部楼层
第二行没有高位号码?
发表于 2013-8-21 12:46:59 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2013-8-22 10:52:41 | 显示全部楼层
感谢 terse 热心提供代码,执行了一下,看内容 似乎可行,但是 没有保存结果。

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

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

输出的结果 必须 与 原 高低 位号码 同行,不能转行,否则 导入 excel 会出错。
发表于 2013-8-22 12:00:43 | 显示全部楼层
回复 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
复制代码
发表于 2013-8-22 13:46:57 | 显示全部楼层
回复 5# fs999

已修改
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:29 , Processed in 0.038640 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表