中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 文件名相同的文件合并 上一主题 | 下一主题
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『楼 主』:  文件名相同的文件合并

文件名前缀相同例如: 200612P9.txt 200701P2.txt 200702P10.txt 200702P11.txt 200702P12.txt 200811P1.txt ......... 成功了,感谢 kissbill。 [ Last edited by bjcb on 2008-12-13 at 22:36 ]


2008-12-12 23:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lserfn
初级用户





积分 97
发帖 49
注册 2008-9-24
状态 离线
『第 2 楼』:  

@echo off&setlocal enabledelayedexpansion for /f %%i in ('dir /b') do ( set /a a+=1 set b=%%~ni set c=!b:~0,6! for /f %%z in ('dir /b') do ( set /e e+=1 set d=%%~nz set f=!d:~0,6! if !a!==!e! ( echo 同文件 ) else ( if !c!==!f! copy %%~nxi %%z ) ) ) pause


2008-12-13 04:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 3 楼』:  

@echo off&setlocal enabledelayedexpansion for /f %%i in ('dir /b') do ( set /a a+=1 set b=%%~ni set c=!b:~0,6! for /f %%z in ('dir /b') do ( set /e e+=1 set d=%%~nz set f=!d:~0,6! if !a!==!e! ( echo 同文件 ) else ( if !c!==!f! copy %%~nxi %%z ) ) ) pause
lserfn的例子,是死循环啊,不能将相关文件合并到一起。 ---------------------------------------- 已复制 0 个文件。 文件无法自身复制。 已复制 0 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 文件无法自身复制。 已复制 0 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。


2008-12-13 15:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 4 楼』:  

看看这个
@echo off
type nul>200611.txt
for /f "delims=" %%i in ('dir /b /a-d 200*.txt') do (copy 200611.txt+%%i 200611.txt)
pause


2008-12-13 16:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 5 楼』:  

那你 以前就没说清楚 哎。。


2008-12-13 16:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 6 楼』:  

Originally posted by kissbill at 2008-12-13 16:41: 那你 以前就没说清楚 哎。。
不好意思 分组合并。是我没有说清。 主要是提取文件名相同的部分,然后删除重复再合并 还是可以直接 用for 直接循环相加分组文件?


2008-12-13 16:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 7 楼』:  

这个呢
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /a-d /b *.txt') do (set e=%%i
set e=!e:~0,6!
type nul>!e!.txt)
for /f "delims=" %%i in ('dir /b /a-d 200*p*.txt') do (set a=%%i
set b=!a:~0,6!
copy !b!.txt+%%i !b!.txt >nul 2>nul
)
pause


   此帖被 +1 点积分    点击查看详情   
评分人:【 bjcb 分数: +1  时间:2008-12-13 22:39


2008-12-13 18:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 8 楼』:  

谢谢,kissbill。 另外问一下,如果根据文件日期,如何分组copy? type nul>!e!.txt ?这句 是什么意思? copy !b!.txt+%%i !b!.txt >nul 2>nul 这句后两个 nul 分别是什么意思啊? 谢谢


2008-12-13 22:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  Re 8楼

本版搜索“文件日期” 本版搜索“type nul” 本版搜索“>nul 2>nul”




2008-12-13 23:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 10 楼』:  

Originally posted by HAT at 2008-12-13 23:01: 本版搜索“文件日期” 本版搜索“type nul” 本版搜索“>nul 2>nul”
偶不是想给论坛节省资源嘛! hoho 马上搜索...........


2008-12-14 01:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 11 楼』:  

汇报搜索结果 整个论坛搜索“type nul” 整个论坛搜索“>nul 2>nul” 没有结果 搜索“文件日期” 两个结果 都不是我要的分组那种。 ---------------- 怀疑我级别太低不能用那个全文搜索 所以 请出百度大婶 恩 ----------------- >nul 2>nul site:cn-dos.net 13篇 重新在本论坛标题搜索 关键字 nul 出来26 个结果 嗯 有相关的帖子 ----------------


2008-12-14 01:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: