Board logo

标题: [文本处理] 如何按指定行数交替输出两个文本文件的行内容? [打印本页]

作者: felix007    时间: 2015-12-2 10:08     标题: 如何按指定行数交替输出两个文本文件的行内容?

本帖最后由 pcl_test 于 2015-12-2 10:28 编辑

一个关于文本的操作,求助大神!
需求是这样的
共有两个文本1和2,1和2中都有很多行文字!
现在需要做一个批处理实现以下功能

提取文本1中的1-10行到文本3.同时提取文本2中的第1行插入到文本3的第三行
然后循环提取文本1中的11-20行到文本4.同时提取文本2中的第2行插入到文本4的第三行
继续循环提取文本1中的21-30行到文本5.同时提取文本2中的第3行插入到文本5的第三行

非常感谢各位大神
之前有个小需求,求助了群里的一个大神给解决了,也是关于文本1和2的问题,我在二楼把那个案例发出来吧
作者: felix007    时间: 2015-12-2 10:16

之前的需求是:
共有两个文本1和2,1和2中都有很多行文字!
批处理实现以下功能
提取文本1中的第1行到文本3的第一行,同时提取文本2中的第1-10行插入到文本3的第2-11行
然后循环提取文本1中的第2行到文本4的第一行.同时提取文本2中的第11-20行插入到文本4的第2-11行
继续循环提取文本1中的第3行到文本5的第一行.同时提取文本2中的第21-30行插入到文本5的第2-11行

以上这个功能已经实现了,把代码发给大家学习下!
同时感谢各位大神,特别感谢给我这个批处理的大神!
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /l %%a in (1,1,2500) do set /p k%%a=)<2.txt
  3. set n=3
  4. for /l %%a in (1,1,10) do set _%%a=%%a
  5. for /f "delims=" %%a in (1.txt) do (
  6.     >>!n!.txt echo;%%a
  7.     for /l %%b in (1,1,10) do for %%c in (!_%%b!) do >>!n!.txt echo;!k%%c!
  8.     for /l %%d in (1,1,10) do set /a _%%d+=10
  9.     set /a n+=1
  10. )
  11. pause
复制代码

作者: WHY    时间: 2015-12-2 15:31

  1. @echo off & setlocal enabledelayedexpansion
  2. set n=2
  3. for /f "delims=" %%i in (2.txt) do set /a n+=1&set "_!n!=%%i"
  4. set n=-1
  5. for /f "delims=" %%i in (1.txt) do (
  6.     set /a n+=1, m=n%%10, o=n/10+3
  7.     if !m!==2 for %%j in (!o!) do echo;!_%%j!>>!o!.txt
  8.     echo;%%i>>!o!.txt
  9. )
  10. pause
复制代码

作者: felix007    时间: 2015-12-2 17:55

回复 3# WHY
感谢大神,但是你的这个批处理好像有问题,实现不了
作者: WHY    时间: 2015-12-2 18:21

用下面的代码生成 1.txt、2.txt 进行测试,如果测试结果不是你想要的,那就是你描述有问题。
  1. @echo off
  2. (for /l %%i in (1,1,200) do echo;AAA %%i)>1.txt
  3. (for /l %%i in (1,1,20) do echo;BBB %%i)>2.txt
复制代码

作者: felix007    时间: 2015-12-2 18:37

回复 5# WHY
大神,感谢大神,没有问题!实现了!太感谢了!
作者: WHY    时间: 2015-12-2 19:06

不是大神,也讨厌这种称呼
如果你觉得有用,那就给加点分数比较实在点
作者: 依山居    时间: 2015-12-2 19:18

小号换着来问啊。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2