找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 89153|回复: 17

[文本处理] 批处理如何将一个txt文本拆分/分割成两个

[复制链接]
发表于 2008-10-19 15:56:06 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-21 21:15 编辑

文本格式:  
AAAAAAAAAAAAAA
BBBBBBBBBBBBBB
CCCCCCCCCCCCCC
DDDDDDDDDDDDDD等等

我想将一个文本平分成两个TXT文件  也就是说把源文本从中间给拆开分成2个TXT
生成文件格式:
A.TXT
AAAAAAAAAAAAAA
BBBBBBBBBBBBBB

B.TXT
CCCCCCCCCCCCCC
DDDDDDDDDDDDDD

请问用批处理怎么解决啊 先谢谢啦 !
 楼主| 发表于 2008-10-19 16:57:53 | 显示全部楼层

回复 2楼 的帖子

回二楼
我运行后生成了两个文本文件,但是里面的内容都是原文件的内容
我的意思就是你说的,不知道用批处理能不能实现啊?
发表于 2008-10-19 17:11:48 | 显示全部楼层
  1. @echo off
  2. split -l 2 yourfile tmp
  3. for %%a in (tmp*) do if not defined a (set a=a&ren "%%a" a.txt) else ren "%%a" b.txt
复制代码
split.exe下载:http://bbs.bathome.net/thread-1114-1-1.html
 楼主| 发表于 2008-10-19 17:29:39 | 显示全部楼层

回复 4楼 的帖子

回四楼 你的代码我刚才试了 但是没有达到我想要的效果
我原文本有很多行的,这个代码只是提取了我文本的前四行分成了两个文本啊,我只是想把它给平均分成两个文件,就是前一半生成一个,后一半生成一个,不知道我说的是否明确啊
 楼主| 发表于 2008-10-19 17:31:21 | 显示全部楼层

回复 5楼 的帖子

不过也要谢谢你
其实我的文本里面还有一些数字,那该怎么办啊?

[ 本帖最后由 luyu0021 于 2008-10-19 17:33 编辑 ]
发表于 2008-10-19 17:33:00 | 显示全部楼层
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. del file1.txt&del file2.txt
  4. for /f "delims=" %%a in (计时关机.bat) do set /a num+=1
  5. set /a num/=2
  6. for /f "delims=" %%b in (计时关机.bat) do (
  7. set /a num2+=1
  8. if !num2! leq %num% (echo %%b>>file1.txt) else echo %%b>>file2.txt
  9. )
复制代码

[ 本帖最后由 yslyxqysl 于 2008-10-19 18:22 编辑 ]
发表于 2008-10-19 17:38:38 | 显示全部楼层
  1. @echo off
  2. for /f "delims=:" %%a in ('findstr /n /v $ yourfile') do set/a l=%%a/2
  3. split -l %l% yourfile tmp
  4. for %%a in (tmp*) do if not defined a (set "a=a"&ren "%%a" a.txt) else ren "%%a" b.txt
复制代码
发表于 2008-10-19 17:39:16 | 显示全部楼层
  1. @echo off
  2. for /f "delims=:" %%a in ('findstr /n .* "test.txt"') do (
  3.   set SumRow=%%a
  4. )
  5. set /a HalfRow=SumRow/2
  6. set /a MinuRow=SumRow-HalfRow
  7. for /f "tokens=1-2 delims=:" %%a in ('findstr /n .* "test.txt"') do (
  8.   if %%a leq %HalfRow% (
  9.     echo.%%b>>"A.TXT"
  10.   )
  11. )
  12. more +%MinuRow% "test.txt">>"B.TXT"
复制代码

[ 本帖最后由 Batcher 于 2008-10-19 19:00 编辑 ]
发表于 2008-10-19 17:44:16 | 显示全部楼层
你是按行分还是按大小分
空行怎么算
  1. @echo off
  2. for /f "delims=" %%i in ('type "a.txt"^|find /v /c ""') do set /a n=%%i/2
  3. for /f "tokens=1* delims=:" %%i in ('findstr /i /n .* a.txt') do (
  4. if %%i gtr %n% (>>a2.txt echo.%%j) else >>a1.txt echo.%%j)
  5. pause
复制代码

[ 本帖最后由 terse 于 2008-10-19 19:20 编辑 ]
 楼主| 发表于 2008-10-19 18:01:44 | 显示全部楼层
RE8楼的代码我试过了 真的可行 谢谢你哈 不过我那个文本中间有空行它会被忽略,我不想让它忽略空行改怎么办呢

RE9楼的代码我运行时不知道怎么回事出现invalid number of lines这个是什么意思呀

RE10楼的代码我运行时提示 命令语法不正确  我直接复制的啊 名称也改了 是不是哪句有错误啊

RE11楼我的文本是按行分的,从中间分开
发表于 2008-10-19 18:05:34 | 显示全部楼层

回复 12楼 的帖子

代码保存为test.bat
双击运行
结果贴出来看看
  1. for /f "delims=:" %%a in ('findstr /n .* "test.txt"') do (
  2.   set SumRow=%%a
  3. )
  4. set /a HalfRow=SumRow/2
  5. set /a MinuRow=SumRow-HalfRow
  6. for /f "tokens=1-2 delims=:" %%a in ('findstr /n .* "test.txt"') do (
  7.   if %%a leq %HalfRow% (
  8.     echo.%%b>>"A.TXT"
  9.   )
  10. )
  11. more +%MinuRow% "test.txt">>"B.TXT"
  12. pause
复制代码

[ 本帖最后由 Batcher 于 2008-10-19 19:00 编辑 ]
 楼主| 发表于 2008-10-19 18:19:50 | 显示全部楼层
原帖由 Batcher 于 2008-10-19 18:05 发表
代码保存为test.bat
双击运行
结果贴出来看看for /f "delims=:" %%a in ('findstr /n .* "test.txt"') do (
  set SumRow=%%a
)
set /a HalfRow=SumRow/2
set /a MinuRow=SumRow-HalfRow
for /f "tokens=1-2  ...


我运行后出现
发表于 2008-10-19 18:44:48 | 显示全部楼层
每个代码都有些问题,修改如下:
  1. @echo off
  2. for /f "delims=:" %%a in ('findstr /n .* "yourfile"') do set/a n=%%a/2
  3. for /f "tokens=1* delims=:" %%i in ('findstr /n .* "yourfile"') do (
  4.       if %%i leq %n% (>>a.txt echo.%%j) else (>>b.txt echo.%%j)
  5. )
  6. pause
复制代码
把代码中的yourfile替换为你的文件名。
发表于 2008-10-19 18:44:50 | 显示全部楼层
一下有那么多代码  我想一定有你需要的
发表于 2008-10-19 19:03:09 | 显示全部楼层

回复 14楼 的帖子

代码已更新,变量HafRow应为HalfRow,这么明显的错误你都发现不了?

另,最好直接贴结果,别截图。

Q: 怎样把CMD窗口里的结果拷贝出来?
A: 右键单击CMD窗口的标题栏->"属性"->"选项"->勾选"快速编辑模式"->然后在CMD窗口用鼠标左键选中想要拷贝的内容->在选中的内容上单击鼠标右键->粘贴到文本文件中即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 03:37 , Processed in 0.022422 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表