如何将两个.text文件中的数据提取到一个新的.txt文件中?

时间:2014-11-27 03:16:53

标签: windows batch-file text

假设我有两个.txt文件,现在名为A.txt和B.txt。

在A.txt中,数据如下:

ABCD12340100000002

0000AB195831 2014082700000000   
0000AB195831 2014082700000000   

在第二个文件B.txt中,数据如下:

ABCD12340100000003

0000AB195831 2014082700000000        
0000AB195831 2014082700000000   
0000AB195831 2014082700000000   

因此,在新的C.txt文件中,我希望得到如下数据:

ABCD12340100000005

0000AB195831 2014082700000000        
0000AB195831 2014082700000000   
0000AB195831 2014082700000000  
0000AB195831 2014082700000000        
0000AB195831 2014082700000000   

这意味着我提取了A.txt和B.txt文件中的所有行并将它们放在一起但是 第一行,从第11个位置开始,它表示该.txt文件中的行数和 我想写一个批处理文件来帮助计算A中的行数和B中的行数,并得出C中的行数(A + B = C - > 00000002 + 00000003 = 00000005 )

那么,如何编写批处理文件以便我可以相应地提取它并创建一个名为C.txt的新.txt文件?

2 个答案:

答案 0 :(得分:1)

@ECHO Off
SETLOCAL
 FOR /f "tokens=1*delims=" %%a IN (q27162517b.txt) DO SET "L2a=%%a"&SET "L1a="&GOTO nextstep
 :nextstep
(
FOR /f "delims=" %%a IN (q27162517a.txt) DO (
 IF DEFINED L1a (ECHO(%%a) ELSE (SET "L1a=%%a"&CALL :sumlines)
)
FOR /f "skip=1delims=" %%a IN (q27162517b.txt) DO (ECHO(%%a)
)>newfile.txt

TYPE newfile.txt

GOTO :EOF

:sumlines
SET /a L2a=1%L1a:~11%+1%L2a:~11%
ECHO(%L1a:~0,10%%L2a:~1%
ECHO(
GOTO :eof

足够简单 - 问题出在哪里?

我在q27162517a.txtq27162517b.txt生成newfile.txt时使用了您的数据 - 更改名称以适合您自己。

答案 1 :(得分:1)

有几种不同的方法可以获得相同的结果。例如:

@echo off
setlocal

rem Get first line of A.txt and B.txt
set /P "lineA=" < A.txt
set /P "lineB=" < B.txt

rem Perform the sum
set /A "sum= 1%lineA:~10% + 1%lineB:~10%"

rem Generate C.txt
(
   echo %lineA:~0,10%%sum:~1%
   echo/
   more +2 A.txt
   more +2 B.txt
) > C.txt