Board logo

标题: [文件操作] 【已结】自动分组合并大量txt文件的批处理 急求 [打印本页]

作者: fxcool    时间: 2009-1-6 15:40     标题: 【已结】自动分组合并大量txt文件的批处理 急求

求自动分组合并大量txt文件的批处理 急求 工作要用 谢谢大家了。
  
在一个文件夹内有大量的txt文件(个数不定) 以时间命名个数是6的倍数,我现在想以6个文件为一组按顺序合并txt文件合并后的名字为1.csv,2.csv...等以此类推,请批处理高手帮帮忙。万分感谢!!!求求好人了。着急用

[ 本帖最后由 fxcool 于 2009-1-6 15:43 编辑 ]
作者: namejm    时间: 2009-1-6 16:26

  是不是所有的txt文件都要拿来合并?如果不是所有的都要合并,要排除哪些?以时间命名,具体格式如何?以6个文件为一组合并,是不是任意6个就可以?合并的格式有没有什么要求?

  虽然你很着急,但是,条件如此模糊,叫别人如何帮你?
作者: fxcool    时间: 2009-1-6 16:39

是文件夹内所有文件都合并 就是按顺序开始 每6个文件合并成一个文件 合并后自动改个后缀名 1.csv之类的名字就可以了。不是任意的 是要按顺序 从前往后合  谢谢。。。文件名就是很有规律的很长的类似  : 200808010000-200808312359.csv
作者: fxcool    时间: 2009-1-6 16:59     标题: 同一文件夹内很多的文本文件想按个数分开请给个代码 谢谢

同一文件夹内很多的文本文件文件个数是6的倍数,想每6个文件一组(不能重复)单独放到一个文件夹内(文件夹名字没要求别重复了就行)就是6个文件放一个文件夹,下6个文件放另一个文件夹 请高人给个代码好吗?
作者: 随风    时间: 2009-1-6 17:00

未测试。。。
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. set /a m=1
  3. for /f "delims=" %%a in ('dir/b *.txt^|sort') do (
  4.    set /a n=n%%6+1
  5.    type "%%a">>!m!.csv
  6.    if !n! equ 6 set /a m+=1
  7. )
  8. pause
复制代码

作者: 随风    时间: 2009-1-6 17:07

楼主不会举一反三啊,这和你前面那一帖几乎是一样的。。。
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. set /a m=1
  3. for /f "delims=" %%a in ('dir/b *.txt') do (
  4.    set /a n=n%%6+1
  5.    if not exist "!m!\" md "!m!"
  6.    move "%%a" "!m!"
  7.    if !n! equ 6 set /a m+=1
  8. )
  9. pause
复制代码

作者: fxcool    时间: 2009-1-6 17:09

谢谢 。要是好用那就太好了
作者: namejm    时间: 2009-1-6 17:10

  请测试这个代码:
  1. @echo off
  2. set num=1
  3. cd.>1.csv
  4. setlocal enabledelayedexpansion
  5. for /f %%i in ('dir /a-d /b *.txt') do (
  6.     copy !num!.csv+%%i !num!.csv>nul&&(
  7.         echo.>>!num!.csv
  8.         set /a num1+=1
  9.     )
  10.     if !num1! equ 6 (
  11.         set num1=0
  12.         set /a num+=1
  13.         cd.>!num!.csv
  14.     )
  15. )
  16. pause
复制代码

作者: fxcool    时间: 2009-1-6 17:11

呵呵 我就是因为前面那个没有人回答才改问这个 。。。怎么也比手工弄强一点 谢谢大哥了。
作者: fxcool    时间: 2009-1-6 17:22

谢谢 谢谢大哥们 我一会上班去测试  要是好用能节省我好几天时间 再次感谢
作者: Batcher    时间: 2009-1-6 17:48     标题: 回复 9楼 的帖子

没人回答,可能是因为你的问题描述不清,但这绝对不是重复发帖的理由,建议下次注意^_^
作者: fxcool    时间: 2009-1-7 09:10

随风版主的 脚本 完美运行 , 管理员大人的脚本 提示找不到文件无法运行,再次感谢你们。
作者: terse    时间: 2009-1-7 12:41

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d /b *.txt') do (
  3.     set /a n+=1,m=n%%6
  4.        if !m! equ 0 (
  5.        set/a Files+=1
  6.        copy !num!"%%i" !Files!.csv >nul 2>nul
  7.        set num=
  8.     ) else set num=!num!"%%i"+
  9.   )
  10. if not "!num!" =="" set/a Files+=1&copy !num:~,-1! !Files!.csv >nul 2>nul
  11. pause
复制代码





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