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

[文本处理] 批处理怎样将电话号码每200个整理为一个文本文件?

各位大侠好,我在论坛找到如下这段代码:
  1. @echo off
  2. (for /f "delims=" %%a in (某市某类人电话号码.txt) do (
  3.     set /p =%%a;<nul
  4. ))>2.txt
复制代码

是将一个TXT文件中的每行排列一个电话号码更改为不再换行,每行后面加一个分号;
电话号码数字固定为11个数字,加分号一共12个字符
现想将输出内容整理为每200个电话号码为一个TXT文件,
命名方式为200(1).txt,200(2).txt,200(3).txt……以此类推;
请教各如如何可以实现以上结果。

[ 本帖最后由 wany_cao 于 2011-2-27 13:56 编辑 ]

如果你的源文件都是一行的话,估计已经超过变量的最大上限8192字符,纯批无法处理了。
技术问题请到论坛发帖求助!

TOP

十分无耻的再次请求各位前辈指教#55555555
座等结果

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set n=
  3. set m=1
  4. for /f "delims=" %%i in (某市某类人电话号码.txt) do (
  5.         set /a n+=1
  6.         if !n! equ 201 set /a n=0,m+=1
  7.         set /p=%%i;<nul 1>>"200(!m!).txt"
  8. )
复制代码


前提是要把这个批处理文件放到"某市某类人电话号码.txt"相同的文件夹下。生成的文本文件还是只有一行内容哦,号码间以分号分隔。

[ 本帖最后由 weichenxiehou 于 2011-2-27 16:16 编辑 ]
看得多说得多,远比不上写得多。

TOP

谢谢2楼提醒,我的原文件每行一个电话号码,少的一两千条,多的七八千甚至上万条;因此需要每200个整理为一个另外的TXT

TOP

源文件每行一个电话号码
  1. @echo off&setlocal enabledelayedexpansion
  2. md temp
  3. set /a m=1
  4. for /f "delims=" %%i in (a.txt) do (
  5.    set /a n=n%%200+1
  6.    echo %%i>>temp\200^(!m!^).txt
  7.    set /a m+="^!(n%%3^)"
  8. )
  9. start "" "temp"
复制代码
技术问题请到论坛发帖求助!

TOP

搞不懂为什么 %1 不成功??

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p wj=请输入文件:
  3. echo 拖入文本文件为:%1&pause
  4. echo waiting...
  5. set m=1
  6. set q=0
  7. :a
  8. set /a m+=1
  9. set /a p=%q%+200
  10. for /f "tokens=1,* delims=:" %%a in ('findstr /n .* %wj%^|^|exit') do (if %%a geq %q% if %%a leq %p% echo %%b>>%m%.txt)
  11. set /a q+=200
  12. if exist %m%.txt goto a
  13. echo OK
  14. pause
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.    set /a m=n/200+1,n+=1
  4.    >>"200(!m!).txt" echo %%i
  5. )
  6. pause
复制代码

TOP

所有的号码都在一行时的笨办法:
  1. for /l %%i in (1 1 100) do (
  2. set /a n+=1,m=n/8+1
  3. for /f "eol= tokens=1-25* delims=;" %%a in (all.txt) do (
  4. (for %%z in (a b c d e f g h i j k l m n o p q r s t u v w x y) do echo;%%z)>!m!.txt
  5. >all.txt echo;%%z
  6. ))
  7. set /p all=<all.txt
  8. if defined all %0
复制代码

[ 本帖最后由 zm900612 于 2011-2-27 18:50 编辑 ]

TOP

返回列表