Board logo

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

作者: 思想之翼    时间: 2015-11-11 15:56     标题: 【已解决】BAT或VBS:根据文本记录内容 合并同名文本数据

本帖最后由 思想之翼 于 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均可,只要速度快。恳望得到帮助。
作者: flyinnet9    时间: 2015-11-11 17:13

  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. )
复制代码

作者: 思想之翼    时间: 2015-11-11 17:41

本帖最后由 思想之翼 于 2015-11-11 17:50 编辑

回复 2# flyinnet9

感谢您的帮助!
D:/数据2/内001.txt文本记录数值为12345  23456  34567 这是举例说明问题,实际情况下,D:/数据2/内001.txt-210.txt文本记录数值个数不定,不就是三个。而且,数据也非都是横排为一行,如果这是问题,可以将文本内的数据都设定为竖排,每行一个数据。
作者: flyinnet9    时间: 2015-11-11 18:03

本帖最后由 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. )
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2