![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 13:05 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 新人求助,路径随机,文件数量随机的合并问题。 |
| 可打印版本 657 / 5 |
| 第1楼 likess | 发表于 2009-03-06 01:03 |
| 新手上路 发帖 5 积分 5 | |
|
新人求助,路径随机,文件数量随机的合并问题。 自己摸索鼓捣了近2天时间,越来越昏。。。
只好求教各位大大。。。 情况如下: 1。在不同的5个路径下面有5个相同的文件名a.txt (实际情况路径会更多,但是文件名可以固定,唯一有变数的是1-5这5个文件夹名字) D:\test\1\a.txt D:\test\2\a.txt D:\test\3\a.txt D:\test\4\a.txt D:\test\5\a.txt 2。把这搜索出来的5个a.txt要合并成1个文件,且格式必须是这样的。 假如D:\test\1\a.txt 下面有3行,第1行写的是1,第2行是回车,第3行写的是2 D:\test\2\a.txt 也有3行,第1行写的是3,第2行是回车,第3行写的是4 我用copy+合并后显示的是 1 2 3 4 显然这样是不对的。。我想要是 1 2 3 4 这样的格式,每个数字间要有个空行。。。 后来采用echo.>>文件的方式可以空格,但是非常麻烦。。 不知道我说的清不清楚。。希望各位大大支招。。 补充下。。 这段代码我的思路是这样的,首先通过批处理搜索出当前路径下所有文件夹里面的a.txt,然后保存文本(目前已实现),再做一个批处理来读取这个存放有路径的文本的每一行,并且把所有存放有a.txt的文件路径合并成单独的一个文本。。 谢谢了!! [ Last edited by likess on 2009-3-6 at 01:05 ] |
|
| 第2楼 netbenton | 发表于 2009-03-06 01:47 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
还没测试过,试试行否 ::把所有内容写到一个临时文件
for /f "delims=" %%a in ('dir /s /b d:\test\ a.txt') do (type "%%a")>test.tmp ::排序,加空行,输出 for /f "tokens=*" %%a in ('sort test.tmp') do ( if exist test.txt (echo.>>test.txt) else (cd.>test.txt) echo.%%a>>test.txt ) del test.tmp |
|
| 第3楼 likess | 发表于 2009-03-06 02:43 |
| 新手上路 发帖 5 积分 5 | |
|
谢谢。。第一个我稍微修改了下,可以把那个5个a.txt的所有内容提取到test.tmp里面。。但是没有排序。。。是原始的
1 2 3 4 5 6 ... 10 这样的顺序。。。 我想排序成 1 2 3 4 5 .. 10 这样的。。 第2个代码用不了。。 |
|
| 第4楼 likess | 发表于 2009-03-06 02:46 |
| 新手上路 发帖 5 积分 5 | |
|
这个是我修改你的第一个代码。。
FOR /F "tokens=*" %%i IN ('dir/s/b/od ^|findstr /r "^.*a.txt"') DO (type "%%i")>>test.tmp 可以把5个a.txt里面的内容读到test.tmp里面。。但是顺序是上面我说的那个错误的排序。。我在想能不能在上面这段代码的基础上修改一下,每次读取一个文件就在最后加个echo.>>test.tmp。。这样就可以排序了。。 最好还判断下最后一个文件的时候不加echo.>>test.tmp 谢谢了 |
|
| 第5楼 likess | 发表于 2009-03-06 02:58 |
| 新手上路 发帖 5 积分 5 | |
|
DO (type "%%i")>>test.tmp
怎么把type "%%i"后面加上echo.>>test.tmp 换行?。。刚才试了下,程序被占用。。。 |
|
| 第6楼 netbenton | 发表于 2009-03-06 07:03 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
你搞错了,我只给你一个代码,它是由两个for组成的,不是两个代码
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |