标题: 请问我如何实现文件夹内的文件合并
[打印本页]
作者: flyingphf
时间: 2008-12-26 13:12
标题: 请问我如何实现文件夹内的文件合并
比如说在文件夹内有1.txt,2.txt,3.txt如何将他们按顺序合并成一个txt文件,谢谢
作者: exzzz
时间: 2008-12-26 14:27
这个。。。放在批处理室不合适吧?
你在CMD下输入 copy /? 就会发现你想要的结果了。
作者: HAT
时间: 2008-12-26 14:42
标题: Re 2楼
你觉得放在哪个版块比较合适呢?
楼主的要求是按顺序合并,当文件夹内文件数量、名称不定时,你准备如何解决?
作者: kissbill
时间: 2008-12-26 15:19
按哪种顺序合并.? 要是按数字递增的话比较容易吧.
作者: kurt101
时间: 2008-12-26 19:27
用软件很快的呀
作者: HAT
时间: 2008-12-26 23:20
标题: Re 5楼
这里是批处理版,不是软件版。
作者: flyingphf
时间: 2008-12-27 13:28
是用批处理做啊
作者: pkto
时间: 2008-12-27 13:57
嗯,是存在这个问题。因为如果文件里有11.txt,21.txt等的话,最后排列加的顺序会是1.txt+11.txt+2.txt+22.txt......,这个问题偶也在学习之中,但还没结果。应该用for遍历,然后sort的方法解决吧……强烈期待hat版主大大人出手!
偶的设想是,如果类似的文件夹有N多(很明显,楼主是批量下载网文产生的文件夹),所以首先遍历的方法,建立各自文件夹的dir /b>目录列表。然后通过sort来读取目录列表内容,并对内容的序列进行顺序排列,并将结果导出到一个新的txt中。最后通过读取新的txt序列,执行copy +的命令,达到楼主的要求……
不知道思路对不对……感觉好复杂的说,无从入手……
如果能把youxi01大大的代码结果导出到文本,偶就能提出整个解决过程啦!代码如下:
@echo off
setlocal enabledelayedexpansion
if "%2"=="" (
for /f "tokens=2 delims=#" %%i in ('"%~0" %1 OK^|sort') do echo %%i
) else (
for /f %%i in (%1) do (
call :CheckNum %%i Res
echo !Res!#%%i)
goto :eof)
pause>nul
:CheckNum num Res
set/a Res=0
for /l %%i in (0 1 1000) do (
set "var=%~1"
set tmp=!var:~%%i,1!
if "!tmp!"=="" goto :eof
set/a Res+=1)
Last edited by pkto on 2008-12-27 at 14:04 ]