利用批处理如何将多个txt文件按行合并为一个新的txt文件?

如:1.txtabcd2.txtefgh合并后为merge.txtabefcdgh注意:是多个txt文件行合并,两个文件之间用空格间隔,谢谢... 如:1.txt
a b
c d
2.txt
e f
g h
合并后为merge.txt
a b e f
c d g h
注意:是多个txt文件行合并,两个文件之间用空格间隔,谢谢
展开
 我来答
yyykkkyyyy
2011-02-26 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3268万
展开全部
代码是可以写,为什么不说明是几个文件呢,没必要设个任意的嘛
@echo off&setlocal enabledelayedexpansion
::批处理文件存为XX.bat放要处理文件同位置执行
::下一行把多个文件名用半角逗号分开,如文件名有空格把那个文件名用引号括起来如
set fn=1.txt,2.txt,"3 a.txt"
for %%i in (%fn%)do (set "n=0"
for /f "usebackq delims=" %%j in ("%%~i")do (
set/a n+=1&call set "#!n!=%%#!n!%%%%j "))
:re
set/a n+=1
if defined #!n! goto re
set/a n-=1
(for /L %%h in (1,1,%n%)do set #%%h=!#%%h:~,-1!&echo.!#%%h!)>merge.txt
start merge.txt
追问
你好,总共有12个文件,谢谢
追答
那就帮你改一下,12个有点多,把它集中起来放一文件夹,批处理文件也放里面,不要有别的txt文件就行
@echo off&setlocal enabledelayedexpansion
if exist merge.txt del merge.txt
for /f "delims=" %%i in ('dir/b/a-d/on *.txt')do (set "n=0"
for /f "delims=" %%j in ('type "%%i"')do (
set/a n+=1&call set "#!n!=%%#!n!%%%%j "))
:re
set/a n+=1
if defined #!n! goto re
set/a n-=1
(for /L %%h in (1,1,%n%)do set #%%h=!#%%h:~,-1!&echo.!#%%h!)>merge.txt
start merge.txt
你说的问题我查过了,确实存在,但代码也没问题,只能说是bat命令中的一个bug,现换了种形式的可以通过,顺序问题它会按文件名排序
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式