Board logo

标题: [文本处理] 批处理实现多个子文件夹下的txt文件各自合并? [打印本页]

作者: 尖尖牙    时间: 2011-8-11 14:18     标题: 批处理实现多个子文件夹下的txt文件各自合并?

D盘里有一个tmp文件夹,下面很多子文件夹,里面有很多名为2-1,2-2……3-1,3-2……,4-1,4-2,4-3……5-1,5-2,5-3……这样的txt文件,现在我想批量把它们分别按数字顺序各自合并,也就是2开头的合并,3开头的合并,4开头的合并,2-1后面是2-2,2-3依次下去,之前找过很多批量合并软件都是把2-1后面合并的2-10,这样就把我的顺序打乱了,请高人帮忙。

因为有太多子文件夹,所以希望能够用一个批处理同时实现所有子文件夹各自合并。
作者: CrLf    时间: 2011-8-11 14:58

需要每组的文件名数字不间断,以 - 为间隔合并同组文件,并只保留该组第一个文件:
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (*-1.txt) do set /a n+=1
  3. for /l %%a in (1 1 %n%) do (
  4.    set n=
  5.    for %%b in (%%a-*.txt) do (
  6.       set /a n+=1
  7.       copy /b "%%a-1.txt"+"%%a-!n!.txt"
  8.    )
  9.    del %%a-*.txt 3>>%%a-1.txt
  10. )2>nul
复制代码

作者: 尖尖牙    时间: 2011-8-11 15:47

很感谢啊。可以在单个文件夹下实现合并。
但是我子文件夹太多了,估计有上千个,可不可以修改一下让我将这个主文件夹下的所有子文件夹各自全部实现这样的合并。
作者: wanglei8312    时间: 2011-8-16 17:13

版主,就是传说中的无所不能的神啊,我也想要一个这样的脚本呢,仿造一个




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