标题: [文本处理] 批处理如何实现两个txt文档对应列合并? [打印本页]
作者: gisjun 时间: 2011-4-3 16:43 标题: 批处理如何实现两个txt文档对应列合并?
两个txt文档合并,a.txt数据接着b.txt对应列的下面,并删除a.txt原本的首行标题(因为ab文档首行都是标题,只要保留b的标题即可)
作者: CrLf 时间: 2011-4-3 17:08
本帖最后由 zm900612 于 2011-4-3 17:14 编辑
- @echo off
- findstr /n .* b.txt>tmp1
- find /n /v "" a.txt|more>tmp2 +2
- (for /f "skip=1 tokens=2*delims=]:" %%a in ('fc /lb1000 /n tmp1 tmp2^|sort') do echo;%%b)>合并.txt
- del /q tmp?
- pause
复制代码
作者: tmplinshi 时间: 2011-4-3 17:22
2# zm900612
不是这样就行吗?- @echo off
- >合并.txt (
- type b.txt
- more +1 a.txt
- )
复制代码
作者: CrLf 时间: 2011-4-3 17:29
我以为楼主是要两个文件一行一行交叉放在一起呢。
作者: gisjun 时间: 2011-4-3 22:38
很感激各位热心人的帮助! 我的txt文件的名字有规律,如2001001、2001002...一直到2001031,请问能否不用手动改代码中的a和b为具体的文件名称,而直接把一个文件夹中的几十个文件的列合并连接在一起呢?
作者: tmplinshi 时间: 2011-4-3 22:53
本帖最后由 tmplinshi 于 2011-4-3 22:58 编辑
如果要数字最大的文件名作为第一个文件,把代码中的 /o:n 改成 /o:-n- @echo off
- set .1=
- (for /f "delims=" %%a in (' dir /a:-d /o:n /b *.txt ') do (
- if not defined .1 (
- type "%%a"
- set .1=d
- ) else (
- more +1 "%%a"
- )
- )) >_合并.txt
复制代码
作者: CrLf 时间: 2011-4-3 23:06
本帖最后由 zm900612 于 2011-4-3 23:07 编辑
来个土办法,比for快很多,但是合并时,文件顺序不一定符合要求:- @echo off
- copy a.txt a.bak
- ren a.txt 合并.tmp
- more +1 *.txt>>合并.tmp
- ren a.bak a.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |