[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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个。
恳望得到大家的帮助!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  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. )
复制代码

TOP

回复 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
恳望继续得到您的帮助!

TOP

  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

评分人数

TOP

上面那个是独立合并,这个是全部合并
  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

评分人数

TOP

  1. paste.exe -d " " *.txt >__all.txt
复制代码
paste 下载地址: http://www.bathome.net/thread-1114-1-1.html
1

评分人数

TOP

这个,还是6楼的强悍...

TOP

谢谢各位鼎力帮助!代码全部能够完美解决问题。

TOP

返回列表