标题: [文本处理] 【已解决】BAT:多个文本合并时,如何限定各文本首行的位置 [打印本页]
作者: 思想之翼 时间: 2022-10-18 06:28 标题: 【已解决】BAT:多个文本合并时,如何限定各文本首行的位置
本帖最后由 思想之翼 于 2022-11-2 19:22 编辑
有若干文本,列数相同,每列以Tab符隔开,行数不一,且小于或等于10行,数尾有回车符,格式如下所示。
现欲合并若干文本,并让每一文本首行位于合并文本的第1 11 21 31 41 51...行。
文本一:
1048 1042 1038 1032
2568 ....... 2538 2534
5650 ....... 5600 .......(注:符号.......意为无数据,即空格)
4947 ....... 4917 .......
文本二:
(注:文本二为空)
文本三:
3196 3696 1169 1166
5623 5223 0622 0623
9736 9036 3703 3706
7059 7759 ....... 1079
....... ....... ....... 9862
合并后的文本:
1048 1042 1038 1032(注:此为第1行,文本一首行位于第1行)
2568 ....... 2538 2534
5650 ....... 5600 .......
4947 ....... 4917 .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......(注:此为第11行,文本二首行位于第11行,例中文本二为空)
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
....... ....... ....... .......
3196 3696 1169 1166(注:此为第21行,文本三首行位于第21行)
5623 5223 0622 0623
9736 9036 3703 3706
7059 7759 ....... 1079
....... ....... ....... 9862(注:最后一个文本,数尾无需添补空行)
作者: qixiaobin0715 时间: 2022-10-18 08:16
- @echo off
- setlocal enabledelayedexpansion
- for %%a in (*.txt) do (
- set n=10
- if defined str (
- for /f "delims=" %%i in ('type "!str!"') do (
- set /a n-=1
- echo,%%i
- )
- for /l %%j in (1,1,!n!) do echo,
- )
- set str=%%a
- )
- type !str!
- pause
复制代码
作者: hfxiang 时间: 2022-10-18 08:29
本帖最后由 hfxiang 于 2022-10-18 08:39 编辑
楼上的解法有效,本人的解法有缺陷,已去除
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |