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

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

本帖最后由 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

谢谢

回复 5# fs999

已修改

TOP

回复 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
复制代码

TOP

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

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

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

输出的结果 必须 与 原 高低 位号码 同行,不能转行,否则 导入 excel 会出错。

TOP

本帖最后由 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
复制代码

TOP

第二行没有高位号码?

TOP

有人吗? 在线等着呢。。。

TOP

返回列表