慢点博客 » ◎批处理技术 » Bat批处理按指定大小分割TXT文本文档

Bat批处理按指定大小分割TXT文本文档

        我有一个上百万级别的有效QQ号码的文档,今天突然想起来想把它分割一下,因为都被我合并了在一个TXT文本文档里。文档的体积有25M。要是经常和文档打交道的朋友知道,对于文本文档来说,25M的级别,已经后CPU卡一卡的级别了。那种服务器上一个500M的日志文件用TXT打开那就是噩梦了。我当然想到的是批处理来解决它。因为这种事情批处理是最合适的,起码我这么觉得。

        当然,自己写了几个不得要领。最后还是要搜索别人的成果。当然很不错。搜索出来了。还搜索到了一个好网站,那就是批处理之家。里面很多写批处理程序的高手。获益良多。要是你也是个批处理的爱好者,这个论坛是不能错过的了。要是你有其他好的批处理资源,也希望和我分享。我把帖子中的几个办法总结了下,觉得一下两个办法比较有代表性。

        方法一:借助第三方工具

        原理是这样的,批处理程序、第三方工具、以及要分拆的文本文档,放在同一个目录里面。第三方工具就是split.exe。点此下载;批处理的程序代码如下:

@echo off
set/p file=请把要处理的文件拖到此处:
for /f "delims=" %%a in ("%file:"=%") do (
     md "%%~na"
     split  -b 100k "%file:"=%" "%%~na\%%~na_"
     ren "%%~na\*" "*.txt"
)
pause

    把以上批处理程序复制成bat格式的就可以了。

    方法二:不借助第三方工具,直接批处理

    代码如下:

@echo off&setlocal enabledelayedexpansion
     set/a kb+=102400,x+=1
     set/p file=请把要处理的文件拖到此处:
     set file=%file:"=%
     call:lp "%file%"
     pause&exit
:lp
md "%~n1"
for /f "tokens=1* delims=:" %%i in ('findstr /o ".*" "%file%"') do (
     if %%i gtr !kb! set /a kb+=102400,x+=1
     >>"%~n1\%~n1_!x!%~x1" echo.%%j
)

        直接复制成bat文件就可以使用。

        截断之后,对文档当然还是要再做校对的,那工作还是减轻了很多。对于经常看小说的朋友,或者制作TXT电子版小说的人,以上程序会有帮助。

        参考帖子:点击 点击2

3 Comments

  1. 创享生活 创享生活 说道:
    这么多的号码,不是盗来的吧?呵呵
    1. johnny johnny 说道:
      呵呵,我不盗号。我收集号。
    1. 创享生活 创享生活 说道:
      厉害..呵呵
    1. johnny johnny 说道:
      其实是没用的号码,都登陆不了的。这堆号也是个好矿,就看怎么用了。
  1. web前端寒风 web前端寒风 说道:
    分割txt文档很新奇,学习了
  1. 秦大少 秦大少 说道:
    500M的txt……我都怀疑我的笔记本能打开不
    1. johnny johnny 说道:
      应该不能打开,可能就死机了,4个CPU,4G内存的服务器估计也很吃力。

发表留言


点击更换验证码

无觅关联推荐,快速提升流量