[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[代码合集] [已解决]求大佬制作下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: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
复制代码

TOP

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

TOP

回复 2# TAT


    没有把子文件夹里的文本内容也全部合并进去,后面的内容也没有自动换行呢,是首尾相连的

TOP

回复 1# 5988911
合并后未换行可能是你的文档中末行本来就没有换行,type换成more试试。3楼代码已修改。

TOP

回复 2# TAT


文件数量多、文本行数多的情况下,建议把重定向放在for循环外面,参考:
https://mp.weixin.qq.com/s/VZk0TmYUpFdCoWK9ZpgL0Q
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# qixiaobin0715


    谢谢大佬,按照你修改完后的 已经解决了

TOP

回复 3# qixiaobin0715
大佬问下  这个方法 合并完成的TXT文档 打开是乱码 是什么问题呢, 合并完成后的文档改了编码也没用  还是乱码

TOP

本帖最后由 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编码。

TOP

回复 9# qixiaobin0715


    老哥 你这个怎么用呀,是直接做成BAT然后和那个乱码的文档放在一起吗

TOP

回复 9# qixiaobin0715


    试了有一个办法,就是把素材文档的编码改成ANSI,这样的话BAT后的文档不是乱码
但是我要是有1000个文档 挨个改编码要改死人。。。。 有什么代码可以批量改编码么

TOP

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

你把9楼bat文件放在源文件夹中运行试试。代码已修改为重定向到文本文件中。

TOP

回复 12# qixiaobin0715


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

TOP

返回列表