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

[文本处理] 【已解决】批处理怎样将两个txt文本行行对应合并成一行?

[复制链接]
发表于 2013-5-4 02:56:43 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-20 16:38 编辑

01_1.txt数据格式为
0
1
2
3
4
5
6
7
8
9
01_2.txt数据格式为
9
8
7
6
5
4
3
2
1
0
欲合并为一个新建的txt文本,数据格式为
0  9
1  8
2  7
3  6
4  5
5  4
6  3
7  2
8  1
9  0
实际运用中txt文本不仅仅2个。
恳望得到大家的帮助!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-5-4 13:33:42 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (*_1.txt) do (
  3.   set "fn=%%~na"
  4.   set "fn=!fn:~,-1!"
  5.   if exist "!fn!2.txt" (
  6.           for /f "delims=" %%b in ('type "%%a"') do (
  7.           set /p str=
  8.           echo %%b !str!
  9.           )
  10.   )<"!fn!2.txt">"!fn!1+2.txt"
  11. )

复制代码
 楼主| 发表于 2013-5-4 13:59:24 | 显示全部楼层
回复 2# xxpinqz

感谢您的热心帮助!您的批处理代码,经试验,可以将2个txt文本并列合并。
可能是叙述有误,我希望将所有txt文本,按排列顺序并列合并到一个txt文本,合并后的数据格式是:
5 4 9 ... 6 2
1 5 2 ... 8 8
7 3 5 ... 4 7
4 6 1 ... 1 3
2 7 7 ... 3 6
9 2 0 ... 2 1
0 8 3 ... 9 4
8 9 6 ... 0 0
6 1 8 ... 7 9
3 0 4 ... 5 5
恳望继续得到您的帮助!
发表于 2013-5-4 15:23:32 | 显示全部楼层

  1. @echo off
  2. for %%i in (*_1.txt) do (
  3. for /f "delims=_" %%j in ("%%~ni") do set fstr=%%j
  4. setlocal enabledelayedexpansion
  5. for %%a in (!fstr!_*.txt) do set "fn=!fn! "%%a""
  6. echo 处理!fstr!_*.txt。。。。。
  7. call :sc!fn!
  8. endlocal
  9. )
  10. ren *.$$$ *.txt
  11. exit /b
  12. :sc
  13. set n=10000
  14. for /f "delims=" %%a in (%~1) do (
  15. set /a n+=1
  16. for %%b in (!n!) do set "#%%b=!#%%b! %%a"
  17. )
  18. if not "%~2"=="" (
  19.   shift /1
  20. ) else (
  21.   (for /f "tokens=1* delims== " %%c in ('set #') do echo %%d)>all_!fstr!.$$$
  22.   goto :eof
  23. )
  24. goto sc
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 乐于助人

查看全部评分

发表于 2013-5-4 15:34:06 | 显示全部楼层
上面那个是独立合并,这个是全部合并

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do set "fn=!fn! "%%a""
  4. call :sc!fn!
  5. exit /b
  6. :sc
  7. set n=10000
  8. for /f "delims=" %%a in (%~1) do (
  9. set /a n+=1
  10. for %%b in (!n!) do set "#%%b=!#%%b! %%a"
  11. )
  12. if not "%~2"=="" (
  13.   shift /1
  14. ) else (
  15.   (for /f "tokens=1* delims== " %%c in ('set #') do echo,%%d)>all_.txt
  16.   goto :eof
  17. )
  18. goto sc
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 乐于助人

查看全部评分

发表于 2013-5-4 15:34:47 | 显示全部楼层
  1. paste.exe -d " " *.txt >__all.txt
复制代码
paste 下载地址: http://www.bathome.net/thread-1114-1-1.html

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 乐于助人

查看全部评分

发表于 2013-5-4 15:44:14 | 显示全部楼层
这个,还是6楼的强悍...
 楼主| 发表于 2013-5-4 17:03:21 | 显示全部楼层
谢谢各位鼎力帮助!代码全部能够完美解决问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 18:34 , Processed in 0.036967 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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