Board logo

标题: [文本处理] 批处理如何将文本B的指定行内容插入到文本A中并将指定行内容行首的数字序列重新编排? [打印本页]

作者: dongyuen9195    时间: 2016-6-3 16:59     标题: 批处理如何将文本B的指定行内容插入到文本A中并将指定行内容行首的数字序列重新编排?

本帖最后由 pcl_test 于 2016-6-4 21:08 编辑

想把两个记事本合并,又不改变它的编码格式,例如:
A文件:
XXXXXXXXXX
01,XXXXXX.....
02, XXXXX....
中间省略,行数不固定
“end"

B文件:
XXXXXXXXXX
01,XXXXXX.....
02, XXXXX....
中间省略,行数不固定
“end"

以上是文件内容,想把B文件的01到之后的数据插入到A文件"end"前面一行
并且:合并后的文件序列要从1排到100(假如两个文件加起来有100),而且还要可以指定间隔数据变化的,比如:从1,3,5,7.....这样数下来,或者是0,5,10,15....
请教高手。
作者: qie2015    时间: 2016-6-4 04:36

删除最后一行-合并-再加上最后一行,这样是不是就行了?
作者: gawk    时间: 2016-6-4 10:06

回复 2# qie2015


    不行,楼主要求排序。
作者: qie2015    时间: 2016-6-6 14:37

@echo off
setlocal enabledelayedexpansion
set A=a.txt
set B=b.txt
call :shu %A%
set Ans=%ns%
call :shu %B%
set Bns=%ns%
if %Ans% gtr %Bns% (set ends=%Ans%) else (set ends=%Bns%)
call :One %A%
call :endf %A%

>c.txt (echo,%Onef%)
for /l %%a in (1,1,%ends%) do (
call :wording %%a %A%
call :wording %%a %B%
)
>>c.txt echo;%endf%

echo,已完成
pause
exit

:shu
for /f "delims=: tokens=1,*" %%a in ('findstr /n ".*" %1') do (set ns=%%a)
goto :eof

:wording
for /f "delims=*" %%b in ('findstr /c:"%1," %2') do (echo,%%b)>>c.txt
goto :eof

:One
for /f %%a in ('type %1') do (
set Onef=%%a
goto :eof
)
goto :eof

:endf
for /f "usebackq" %%a in (`type %1`) do (set endf=%%a)
goto :eof




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