Board logo

标题: [代码合集] [已解决]求大佬制作下BAT代码 批量合并同类型文件并且保存到新的文件夹 [打印本页]

作者: 5988911    时间: 2022-3-9 01:22     标题: [已解决]求大佬制作下BAT代码 批量合并同类型文件并且保存到新的文件夹

本帖最后由 5988911 于 2022-3-11 12:43 编辑

需求:把当前根目录下的所有文件夹包括子文件夹内的TXT文本文档的内容合并到1个新的文本文档里,每个内容需要自动换行
打比方E盘BOOK文件夹里有文本文档A,内容为“我爱你”
               BOOK文件夹里有子文件夹SAFE,SAFE里有文本文档B,内容为 “我要娶你”
               SAFE文件夹里有子文件夹LOVER,LOVER里有文本文档C,内容为“嫁给我好吗”
最终需求为把ABC3个文本文档的内容合并,并保存到D盘的KISS文件夹下,
合并的文本文档内容为,第一行,我爱你;   第二行,我要娶你;   第三行,嫁给我好吗
合并后的内容不能全部在第一行首尾相连
作者: TAT    时间: 2022-3-9 02:29

本帖最后由 TAT 于 2022-3-9 02:36 编辑
  1. @echo off
  2. md D:\KISS\ 2>nul
  3. del D:\KISS\D.txt 2>nul
  4. for /f "tokens=*" %%i in ('dir /b /s E:\BOOK') do (
  5.     if %%~xi==.txt (for /f "tokens=*" %%n in (%%i) do (echo %%n >>D:\KISS\D.txt))
  6. )
  7. pause
复制代码

作者: qixiaobin0715    时间: 2022-3-9 08:30

本帖最后由 qixiaobin0715 于 2022-3-11 09:06 编辑
  1. cd /d E:\BOOK
  2. (for /f "delims=" %%i in ('dir /s /b /a-d *.txt') do @more "%%i")>SUN.txt
复制代码

作者: 5988911    时间: 2022-3-10 19:49

回复 2# TAT


    没有把子文件夹里的文本内容也全部合并进去,后面的内容也没有自动换行呢,是首尾相连的
作者: qixiaobin0715    时间: 2022-3-11 09:12

回复 1# 5988911
合并后未换行可能是你的文档中末行本来就没有换行,type换成more试试。3楼代码已修改。
作者: Batcher    时间: 2022-3-11 09:43

回复 2# TAT


文件数量多、文本行数多的情况下,建议把重定向放在for循环外面,参考:
https://mp.weixin.qq.com/s/VZk0TmYUpFdCoWK9ZpgL0Q
作者: kissmylove    时间: 2022-3-11 12:42

回复 3# qixiaobin0715


    谢谢大佬,按照你修改完后的 已经解决了
作者: 5988911    时间: 2022-3-25 22:58

回复 3# qixiaobin0715
大佬问下  这个方法 合并完成的TXT文档 打开是乱码 是什么问题呢, 合并完成后的文档改了编码也没用  还是乱码
作者: qixiaobin0715    时间: 2022-3-26 08:56

本帖最后由 qixiaobin0715 于 2022-3-26 09:58 编辑

回复 8# 5988911
最好把你要处理的文件发到网盘上看看。
查看一下要处理的文件编码,如果均为UTF-8编码,试试下面代码:
  1. @echo off
  2. chcp 65001>nul
  3. (for /f "delims=" %%i in ('dir /s /b /a-d *.txt') do type "%%i"&echo,)>SUM.txt
  4. pause
复制代码
代码也保存为UTF-8编码。
作者: 5988911    时间: 2022-3-26 09:50

回复 9# qixiaobin0715


    老哥 你这个怎么用呀,是直接做成BAT然后和那个乱码的文档放在一起吗
作者: 5988911    时间: 2022-3-26 09:55

回复 9# qixiaobin0715


    试了有一个办法,就是把素材文档的编码改成ANSI,这样的话BAT后的文档不是乱码
但是我要是有1000个文档 挨个改编码要改死人。。。。 有什么代码可以批量改编码么
作者: qixiaobin0715    时间: 2022-3-26 10:00

本帖最后由 qixiaobin0715 于 2022-3-26 10:01 编辑

你把9楼bat文件放在源文件夹中运行试试。代码已修改为重定向到文本文件中。
作者: 5988911    时间: 2022-3-27 11:03

回复 12# qixiaobin0715


    用你9楼这个 解决了 谢谢大佬




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