标题: [文本处理] 批处理如何合并文本文件? [打印本页]
作者: lenovo28 时间: 2010-11-9 23:39 标题: 批处理如何合并文本文件?
有三个文本文件a.txt、b.txt、c.txt(三个文件都超过20M)
文件a.txt内容为:1111/2222/3333/4444......
文件b.txt内容为:aaaa/bbbb/cccc/dddd
文件c.txt内容为:AAAA/BBBB/CCCC/DDDD
我想弄个批处理,来加工这三个文件,加工后生成若干个新文件,如:1.txt、2.txt、3.txt等等
1.txt内容为:
1111
aaaa
AAAA2.txt内容为
2222
bbbb
BBBB
依此类推我自己写了个批处理,也实现了效果,但是只能循环31次,不知是什么原因?我的代码如下:
@echo off
set /a n=0
:loop
set /a n+=1
FOR /F "tokens=%n% delims=/" %%i in (a.txt,b.txt,c.txt) do @echo %%i >> %n%.txt
goto :loop
作者: wc726842270 时间: 2010-11-10 20:54
试一下能否满足吧.不用那么复杂复制代码
作者: lvsehuaxue 时间: 2010-11-10 22:26
2楼没有弄清1楼的要求吧
作者: wc726842270 时间: 2010-11-10 23:18
呵呵,多谢提醒,确实没看下面,又重新给了个代码,写的有点麻烦,见笑了- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do set /p=%%i<nul >>a1.txt
- for /f "delims=" %%j in (b.txt) do set /p=%%j<nul >>b1.txt
- for /f "delims=" %%k in (c.txt) do set /p=%%k<nul >>c1.txt
- set /p c=<a1.txt
- set /p a=<b1.txt
- set /p b=<c1.txt
- echo %c% >d1.txt
- echo %a% >>d1.txt
- echo %b% >>d1.txt
- set n=0
- :1
- set /a n+=1
- (for /f "delims=/ tokens=%n%" %%a in (d1.txt) do echo %%a) >>!n!.txt&&goto 1
- pause
- del a1.txt&del b1.txt&del c1.txt&del d1.txt
- pause
复制代码
[ 本帖最后由 wc726842270 于 2010-11-10 23:37 编辑 ]
作者: lvsehuaxue 时间: 2011-6-12 08:17
- @echo off&setlocal enabledelayedexpansion
- set n=1
- :r
- for /f "tokens=%n% delims=/" %%i in (a.txt b.txt c.txt) do echo %%i>>!n!.txt
- set /a n+=1
- goto :r
复制代码
作者: CrLf 时间: 2011-6-12 15:20
本帖最后由 zm900612 于 2011-6-12 15:26 编辑
楼主代码出错是因为tokens值上限为31,也许可以这样:- @echo off&setlocal enabledelayedexpansion
- :again
- (for %%1 in (a b) do (
- for /f "tokens=1-25*delims=\" %%a in (%%1.txt) do (
- for %%2 in (
- %%a %%b %%c %%d %%e %%f %%g %%h
- %%i %%j %%k %%l %%m %%n %%o %%p
- %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z
- ) do (
- set /a %%1+=1000001
- echo>>$!%%1:~-6!.txt %%2
- )
- echo;>%%1.txt %%z
- )
- ))>tmp.txt
- ::每次读取a与b的前25列到以其列数为名的临时文件,并把第26与之后的列输出到原文件中,以便下次分隔
- for /f %%a in (a.txt b.txt) do goto :again
- ::若还存在未分割的列,则继续分割
- copy /b $*.txt 合并.txt
- ::合并临时文件
- del /q $*.txt
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |