标题: [文本处理] 【已解决】批处理如何按照文本的行长度将文本平均分成三份? [打印本页]
作者: elec 时间: 2014-7-7 09:38 标题: 【已解决】批处理如何按照文本的行长度将文本平均分成三份?
本帖最后由 elec 于 2014-7-7 22:49 编辑
假设一个文本是1200行。生成仨文本分别为 400行,(1~400 401~800 801~1200)
假设一个文本是1201行。生成仨文本分别为 400行,第1201不打印
假设一个文本是1202行。生成仨文本分别为 400行,第1201 1202 不打印
假设一个文本是1203行。生成仨文本分别为 401行
。。。。
生成仨文本分别为1.txt 2.txt 3.txt
作者: terse 时间: 2014-7-7 11:50
- @echo off
- set n=3
- set "filename=a.txt"
- for /f "delims=" %%i in ('find /c /v "" ^<"%filename%"') do set /a m=%%i/3
- (for /l %%i in (1,1,%n%) do (
- (for /l %%j in (1,1,%m%) do (
- setlocal enabledelayedexpansion
- set/pstr=
- echo;!str!
- endlocal
- ))>%%i.txt
- ))<"%filename%"
复制代码
作者: xxpinqz 时间: 2014-7-7 11:52
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2 delims=:" %%a in ('find /v /c "" a.txt') do set/a n=%%a/3,m=1
- (for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
- if !m! leq !n! echo,%%b>>!m!.txt
- set/a "1/(%%a%%n)"||set/am+=1
- ))2>nul
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |