Board logo

标题: [文本处理] [已解决]批处理如何将文本行按指定规则进行组合合并? [打印本页]

作者: qzwifi    时间: 2016-1-2 14:19     标题: [已解决]批处理如何将文本行按指定规则进行组合合并?

例:
a.txt文本内容为:
01 02 03
04 05 06
07 08 09
10 11 12
13 14 15
16 17 18

处理成:
01 02 03 04 05 06 07 08 09     (就是将上面6行内容的第1、2、3行合为一行)
01 02 03 04 05 06 10 11 12     (1、2、4行合为一行)
01 02 03 04 05 06 13 14 15     (1、2、5行合为一行)
01 02 03 04 05 06 16 17 18     (1、2、6行合为一行)
01 02 03 07 08 09 10 11 12     (1、3、4行合为一行)
01 02 03 07 08 09 13 14 15     (1、3、5行合为一行)
01 02 03 07 08 09 16 17 18     (1、3、6行合为一行)
01 02 03 10 11 12 13 14 15     (1、4、5行合为一行)
01 02 03 10 11 12 16 17 18     (1、4、6行合为一行)
01 02 03 13 14 15 16 17 18     (1、5、6行合为一行)
04 05 06 07 08 09 10 11 12     (2、3、4行合为一行)
04 05 06 07 08 09 13 14 15     (2、3、5行合为一行)
04 05 06 07 08 09 16 17 18     (2、3、6行合为一行)
04 05 06 10 11 12 13 14 15     (2、4、5行合为一行)
04 05 06 10 11 12 16 17 18     (2、4、6行合为一行)
04 05 06 13 14 15 16 17 18     (2、5、6行合为一行)
07 08 09 10 11 12 13 14 15     (3、4、5行合为一行)
07 08 09 10 11 12 16 17 18     (3、4、6行合为一行)
07 08 09 13 14 15 16 17 18     (3、5、6行合为一行)
10 11 12 13 14 15 16 17 18     (4、5、6行合为一行)

注:把a.txt文本内容行进行一个3行复式的行为,
上面举例的a.txt文本为简洁阐述以01 02 03这样的三个数字为例,
而实际需要处理的文本内容行字符存在个数长度不等的情况。
处理完成保存为b.txt
作者: 回家路上    时间: 2016-1-2 15:31

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3. set /a i+=1
  4. set #!i!=%%i
  5. )
  6. (for /l %%i in (1,1,%i%) do (
  7. set /a j=%%i+1
  8. for /l %%j in (!j!,1,%i%) do (
  9. set /a k=%%j+1
  10. for /l %%k in (!k!,1,%i%) do (
  11. echo;!#%%i! !#%%j! !#%%k!
  12. )
  13. )
  14. ))>b.txt
  15. pause & exit /b
复制代码





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