常用批处理2-3——多文件行合并

常用批处理2-3——多文件进行对应行合并
如下所示,1.txt 与 2.txt 行进行合并, 得到的行合并文件4.txt
常用批处理2-3——多文件行合并_第1张图片
功能不错吧,代码怎么实现呢?
其原理是,遍历文件1,取出一行之后,
遍历文件2,忽略前n行,取出相应行之后,结束2的遍历,
然后继续遍历1
批处理具体代码如下:

@echo off
del 4.txt
set num=0
setlocal enabledelayedexpansion
for /f "delims=: tokens=1,*"  %%a in ('findstr /n ".*" 1.txt')  do (
    if !num! equ 0 (
        set /p str=<2.txt
        echo %%b !str!>>4.txt
    ) else (
        call:get !num! "%%b"
    )
    set /a num+=1
)
pause
exit  

:get
for /f "skip=%~1 delims=: tokens=1,*"  %%a in ('findstr /n ".*" 2.txt') do (
    echo %~2 %%b>>4.txt
    goto :eof
)

该批处理存在一个问题,生成文件的行数由·1.txt的行数决定,若2.txt更长,那么后面的行将被忽略,
解决办法是先统计2个文件的行数,谁的行数多,就作为1.txt。

你可能感兴趣的:(批处理,批处理—测试人员必备)