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

[文本处理] 批处理怎样合并两个文本?

[复制链接]
发表于 2012-5-13 00:38:39 | 显示全部楼层 |阅读模式
  1. set a1=1
  2. set a2=1
  3. for /f "tokens=*" %%a in (1.txt) do ( goto :t2 && set /a a1+=1)
  4. :t2
  5. for /f "tokens=*" %%i in (2.txt) do if %a1%==%a2% @echo %%a +%%i >> a.txt && set /a a2+=1
  6. goto :eof
复制代码
结果只出了“2.txt”的内容。也就是说变量a的值没有被掉用。
请高手指点。
发表于 2012-5-13 10:05:44 | 显示全部楼层
直接copy 1.txt /b + 2.txt /b a.txt难道不行吗?
发表于 2012-5-13 12:13:07 | 显示全部楼层
如果我没有理解错的话,应该是想这样。
文本1:            文本2:
1                             1
2                             2
3                             3
4                             4
5                             5
想竖向合并吧。

你的代码是有绝大的问题的。确定问题先把。
给你两个建议:
第一:问题要明确
第二:问问题的时候不要浪费大家的脑细胞来想你到底想做神马
发表于 2012-5-13 14:06:48 | 显示全部楼层
goto命令的执行方式跟你的想象有点不同,自己看看执行过程就懂了。
  1. set a1=1
  2. set a2=1
  3. for /f "tokens=*" %%a in (1.txt) do (
  4.     echo I am in for loop 1.txt
  5.     goto :t2 && set /a a1+=1
  6. )
  7. :t2
  8. for /f "tokens=*" %%i in (2.txt) do (
  9.     echo I am in for loop 2.txt
  10.     if %a1%==%a2% @echo %%a +%%i >> a.txt && set /a a2+=1
  11. )
  12. goto :eof
复制代码
发表于 2012-5-13 18:13:20 | 显示全部楼层
竖向合并,只不过要用第三方paste.exe
  1. @echo off
  2. paste -d " " a.txt b.txt>c.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 05:00 , Processed in 0.016561 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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