【问题标题】:How do I extract the datas from two .txt files into one new .txt file?如何将两个 .txt 文件中的数据提取到一个新的 .txt 文件中?
【发布时间】:2014-11-27 03:16:53
【问题描述】:

假设我有两个 .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 文件?

【问题讨论】:

  • 什么操作系统? Unix?窗户?
  • @MarkStewart Windows。
  • 如果您有任何选择,请不要尝试使用批处理。在 powershell、python、ruby 等其他工具中执行此操作。
  • @Blorgbeard 但是可以使用批处理吗?
  • 可能。但是编写、阅读或维护都不会很有趣。

标签: windows batch-file text


【解决方案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 - 更改名称以适合您自己。

【讨论】:

    【解决方案2】:

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

    @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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多