我有一个上百万级别的有效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电子版小说的人,以上程序会有帮助。
3 Comments