假设我有两个.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文件?
答案 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.txt
和q27162517b.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