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

[文本处理] 【已解决】BAT或VBS:根据文本记录内容 合并同名文本数据

[复制链接]
发表于 2015-11-11 15:56:24 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2015-11-11 18:50 编辑

D:/数据1/内有001-210个子文件夹,每个子文件夹内包含名称为00000-99999的txt文本
D:/数据2/内有名称为001-210的txt文本,其记录的数据多少不定
D:/数据1/与D:/数据2/内的所有txt文本,其数据记录格式均为竖排,每行一个数据,比如:
12345
23456
34567

现在欲根据D:/数据2/内txt文本记录的数值,提取合并D:/数据1/对应子文件夹内txt文本的数据。举例如下:
D:/数据2/内001.txt文本记录数值为12345  23456  34567(例中3个数据,实际数据多少不定),则提取合并D:/数据1/001子文件夹内12345.txt、23456.txt、34567.txt的数据,写入D:/数据3/001_1.txt
D:/数据2/内002.txt文本记录数值为12345  23456  34567(例中3个数据,实际数据多少不定),则提取合并D:/数据1/002子文件夹内12345.txt、23456.txt、34567.txt的数据,写入D:/数据3/002_1.txt
......
D:/数据2/内210.txt文本记录数值为12345  23456  34567(例中3个数据,实际数据多少不定),则提取合并D:/数据1/210子文件夹内12345.txt、23456.txt、34567.txt的数据,写入D:/数据3/210_1.txt
BAT VBS均可,只要速度快。恳望得到帮助。
发表于 2015-11-11 17:13:26 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d /b d:\数据2\*.txt') do (
  3.   for /f "tokens=1-3 delims= " %%b in (%%a) do (
  4.     pushd "d:\数据1\%%~na"
  5.     copy /b %%b.txt+%%c.txt+%%d.txt "d:\数据3\%%~na_1.txt"
  6.     popd
  7.   )
  8. )
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

 楼主| 发表于 2015-11-11 17:41:46 | 显示全部楼层
本帖最后由 思想之翼 于 2015-11-11 17:50 编辑

回复 2# flyinnet9

感谢您的帮助!
D:/数据2/内001.txt文本记录数值为12345  23456  34567 这是举例说明问题,实际情况下,D:/数据2/内001.txt-210.txt文本记录数值个数不定,不就是三个。而且,数据也非都是横排为一行,如果这是问题,可以将文本内的数据都设定为竖排,每行一个数据。
发表于 2015-11-11 18:03:47 | 显示全部楼层
本帖最后由 flyinnet9 于 2015-11-11 18:06 编辑

竖排
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d /b d:\数据2\*.txt') do (
  3.   for /f "delims=" %%b in (%%a) do (
  4.     type "d:\数据1\%%~na\%%b.txt" >>"d:\数据3\%%~na_1.txt"
  5.   )
  6. )
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 09:16 , Processed in 0.014505 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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