Board logo

标题: [文本处理] 【已解决】如何批量合并2个文件夹里名称相同的txt文档 (WHY老师请看私信) [打印本页]

作者: 屡败屡战    时间: 2018-3-12 08:59     标题: 【已解决】如何批量合并2个文件夹里名称相同的txt文档 (WHY老师请看私信)

本帖最后由 屡败屡战 于 2018-3-18 15:33 编辑

例如有2个文件夹,文件夹A与B,A与B文件夹里面是同名同姓文件,但内容不相同(呈N个文档,数量很多)。
  请问如何批量处理,把A、B文件夹下的同名txt文档进行一对一“合并”成一个新txt文档。即以A文件夹下文件为基准,将B文件夹下的同名的文档一一对应的“合并”到A文件夹下同名文档中。
问:将B文件夹下的同名的文档“合并”到A文件夹下同名文档中,合并到文件头部,代码该咋写?请吿知哪里代码表示头部
    将B文件夹下的同名的文档“合并”到A文件夹下同名文档中,合并到文件尾部,代码该咋写?请吿知哪里代码表示尾部
    另外,合并后的文档内容要求保持原文档的格式,主要指换行。
望不吝赐教!!

    我求的是批量处理N个文件的代码,而不是単个文件的代码
作者: Batcher    时间: 2018-3-12 09:33

合并到尾部比较简单,直接使用追加写入的方式就行了,例如:
  1. echo,>>C:\A\1.txt
  2. type C:\B\1.txt >>C:\A\1.txt
复制代码
合并到头部思路是这样:临时生产一个新文件,依次写入两个文件的内容,把临时文件进行重命名,例如:
  1. type C:\B\1.txt >C:\A\1.tmp
  2. echo,>>C:\A\1.tmp
  3. type C:\A\1.txt >>C:\A\1.tmp
  4. move /y C:\A\1.tmp C:\A\1.txt
复制代码

作者: 屡败屡战    时间: 2018-3-12 10:11

老师好;
我求的是批量处理N个文件的代码,而不是単个文件的代码
作者: ivor    时间: 2018-3-12 20:21

  1. for /f "delims=" %%a in ('dir /b /a-d A\*.txt') do (copy "%%~dpaA\%%~nxa" + "%%~dpaB\%%~nxa" "%%~dpaA\%%~nxa")
复制代码

作者: 屡败屡战    时间: 2018-3-12 22:33

ivor 老师:
   您的代码完美,我还有个请求,能否在合并文档时,合并的两个文档之间,间隔一行“空行”,以方便查看,谢谢了!!
作者: Batcher    时间: 2018-3-13 09:08

回复 5# 屡败屡战


    copy命令合并文件无法实现这个效果,2楼的代码可以。
作者: 屡败屡战    时间: 2018-3-13 09:31

batcher老师好;
我求的是批量处理N个文件的代码,而不是単个文件的代码,老师您的代码是针对单文件的。我想求处理N个文件的。
作者: Batcher    时间: 2018-3-13 14:07

回复 7# 屡败屡战


    把2楼的那种方法放到4楼那种for循环里面就能批量了
作者: yhcfsr    时间: 2018-3-14 02:30

ivor 发表于 2018-3-12 20:21
  1.     for /f "delims=" %%a in ('dir /b /a-d A\*.txt') do (echo.>>"%%~dpaA\%%~nxa"&&copy "%%~dpaA\%%~nxa" + "%%~dpaB\%%~nxa" "%%~dpaA\%%~nxa")
复制代码

作者: 屡败屡战    时间: 2018-3-16 14:31

本帖最后由 屡败屡战 于 2018-3-16 15:03 编辑

WHY老师好像误会我了。
请WHY老师看下我给您发的私信。




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