标题: [文件操作] 【已结】自动分组合并大量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
未测试。。。- @echo off&setlocal ENABLEDELAYEDEXPANSION
- set /a m=1
- for /f "delims=" %%a in ('dir/b *.txt^|sort') do (
- set /a n=n%%6+1
- type "%%a">>!m!.csv
- if !n! equ 6 set /a m+=1
- )
- pause
复制代码
作者: 随风 时间: 2009-1-6 17:07
楼主不会举一反三啊,这和你前面那一帖几乎是一样的。。。- @echo off&setlocal ENABLEDELAYEDEXPANSION
- set /a m=1
- for /f "delims=" %%a in ('dir/b *.txt') do (
- set /a n=n%%6+1
- if not exist "!m!\" md "!m!"
- move "%%a" "!m!"
- if !n! equ 6 set /a m+=1
- )
- pause
复制代码
作者: fxcool 时间: 2009-1-6 17:09
谢谢 。要是好用那就太好了
作者: namejm 时间: 2009-1-6 17:10
请测试这个代码:- @echo off
- set num=1
- cd.>1.csv
- setlocal enabledelayedexpansion
- for /f %%i in ('dir /a-d /b *.txt') do (
- copy !num!.csv+%%i !num!.csv>nul&&(
- echo.>>!num!.csv
- set /a num1+=1
- )
- if !num1! equ 6 (
- set num1=0
- set /a num+=1
- cd.>!num!.csv
- )
- )
- 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
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /a-d /b *.txt') do (
- set /a n+=1,m=n%%6
- if !m! equ 0 (
- set/a Files+=1
- copy !num!"%%i" !Files!.csv >nul 2>nul
- set num=
- ) else set num=!num!"%%i"+
- )
- if not "!num!" =="" set/a Files+=1© !num:~,-1! !Files!.csv >nul 2>nul
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |