中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 00:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问我如何实现文件夹内的文件合并 查看 1,235 回复 7
楼 主 请问我如何实现文件夹内的文件合并 发表于 2008-12-26 13:12 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
比如说在文件夹内有1.txt,2.txt,3.txt如何将他们按顺序合并成一个txt文件,谢谢
2 发表于 2008-12-26 14:27 ·  中国 广东 深圳 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
19年会员
UID 87022
性别 男
状态 离线
这个。。。放在批处理室不合适吧?

你在CMD下输入 copy /? 就会发现你想要的结果了。
3 Re 2楼 发表于 2008-12-26 14:42 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你觉得放在哪个版块比较合适呢?
楼主的要求是按顺序合并,当文件夹内文件数量、名称不定时,你准备如何解决?
4 发表于 2008-12-26 15:19 ·  中国 天津 电信
初级用户
积分 61
发帖 35
注册 2008-10-04 13:00
17年会员
UID 127389
性别 男
状态 离线
按哪种顺序合并.? 要是按数字递增的话比较容易吧.
5 发表于 2008-12-26 19:27 ·  中国 广西 南宁 西乡塘区 电信
初级用户
积分 23
发帖 17
注册 2008-08-22 21:53
17年会员
UID 123905
性别 男
状态 离线
用软件很快的呀
6 Re 5楼 发表于 2008-12-26 23:20 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
这里是批处理版,不是软件版。
7 发表于 2008-12-27 13:28 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
是用批处理做啊
8 发表于 2008-12-27 13:57 ·  中国 江苏 南京 电信
初级用户
★★
积分 62
发帖 62
注册 2007-07-14 14:39
19年会员
UID 93962
性别 男
状态 离线
嗯,是存在这个问题。因为如果文件里有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 ]
论坛跳转: