![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 02:34 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请问我如何实现文件夹内的文件合并 |
| 可打印版本 1,239 / 7 |
| 第1楼 flyingphf | 发表于 2008-12-26 13:12 |
| 中级用户 发帖 142 积分 392 | |
|
请问我如何实现文件夹内的文件合并 比如说在文件夹内有1.txt,2.txt,3.txt如何将他们按顺序合并成一个txt文件,谢谢
|
|
| 第2楼 exzzz | 发表于 2008-12-26 14:27 |
| 初级用户 发帖 167 积分 194 | |
|
这个。。。放在批处理室不合适吧?
你在CMD下输入 copy /? 就会发现你想要的结果了。 |
|
| 第3楼 HAT | 发表于 2008-12-26 14:42 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 2楼 你觉得放在哪个版块比较合适呢?
楼主的要求是按顺序合并,当文件夹内文件数量、名称不定时,你准备如何解决? |
|
| 第4楼 kissbill | 发表于 2008-12-26 15:19 |
| 初级用户 发帖 35 积分 61 | |
|
按哪种顺序合并.? 要是按数字递增的话比较容易吧.
|
|
| 第5楼 kurt101 | 发表于 2008-12-26 19:27 |
| 初级用户 发帖 17 积分 23 | |
|
用软件很快的呀
|
|
| 第6楼 HAT | 发表于 2008-12-26 23:20 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 5楼 这里是批处理版,不是软件版。
|
|
| 第7楼 flyingphf | 发表于 2008-12-27 13:28 |
| 中级用户 发帖 142 积分 392 | |
|
是用批处理做啊
|
|
| 第8楼 pkto | 发表于 2008-12-27 13:57 |
| 初级用户 发帖 62 积分 62 | |
|
嗯,是存在这个问题。因为如果文件里有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 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |