找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30989|回复: 4

[文本处理] 【已解决】如何提高效率 :合并多个txt文档中对应的行

[复制链接]
发表于 2014-10-26 15:20:08 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2014-10-28 09:43 编辑

下述bat代码,是合并多个txt文档中对应的行,即
1.txt为
01
02
30
...
25

2.txt为
02
03
04
...
35

...

21.txt为
70
80
90
...
88

这21个txt文本 合并对应的行,结果为
01 02...70
02 03...80
03 40...90
...  ...   ...
25 35   88

@echo off&setlocal enabledelayedexpansion
set 文件数=10000
for /l %%a in (1,1,%文件数%) do (
    for /f "delims=" %%i in (D:/数据3/%%a.txt) do (
        set /a n+=1
        for %%a in (!n!) do set "#%%a=!#%%a! %%i"
    )
    set /a m=n,n=0
)
(for /l %%a in (1,1,%m%) do echo,!#%%a:~1!)>D:/数据3/all.txt

现在欲合并10000个txt文本,速度就跟不上了。请教高人:有什么更好的办法?有没有第三方工具?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-10-26 22:39:10 | 显示全部楼层
本帖最后由 apang 于 2014-10-27 21:19 编辑

试试vbs,感觉可能会快一点
  1. On Error Resume Next
  2. fileNum = 100
  3. Max = 0 : ReDim ar(fileNum)
  4. Set fso = CreateObject("Scripting.FileSystemObject")

  5. For i = 1 to fileNum
  6.         Set f = fso.OpenTextFile("D:\数据3" & i & ".txt")
  7.         ar(i) = Split(RegEx(f.ReadAll), vbCrLf)
  8.         If UBound(ar(i)) > Max Then Max = UBound(ar(i))
  9.         f.Close : Set f = Nothing
  10. Next

  11. For i = 0 to Max
  12.         s = ""
  13.         For j = 1 to fileNum
  14.                 s = s & " " & ar(j)(i)
  15.         Next
  16.         fso.OpenTextFile("D:\数据3\all.txt", 8, true).WriteLine Mid(s, 2)
  17. Next

  18. MsgBox "OK"

  19. Function RegEx(txt)
  20.         Set re = New RegExp
  21.         re.Pattern = "^(\s*\n)+|(\s*\n)+$"
  22.         re.Global = true
  23.         txt = re.Replace(txt, "")
  24.         re.Pattern = "(\s*\n)+"
  25.         RegEx = re.Replace(txt, vbCrLf)
  26. End Function
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 速度快了不少。感谢帮助。

查看全部评分

 楼主| 发表于 2014-10-27 09:28:40 | 显示全部楼层
回复 2# apang

感谢。测试下。
发表于 2014-10-27 18:45:35 | 显示全部楼层
怎么别人的问题都怎么有人来帮忙啊!!我唔 唔
发表于 2014-10-27 21:24:57 | 显示全部楼层
回复 4# ads350668398


    很可能是你把问题表述得模糊不清
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 20:51 , Processed in 0.033614 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表